4
我创建了一个简单的我们项目,调用一个jms队列并放入一条消息。Weblogic 12.1.3 PrivilegedActions class not found
下面的代码:
public class QueueSend
{
// Defines the JNDI context factory.
public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
// Defines the JMS context factory.
public final static String JMS_FACTORY="jms/MyConnectionFactory";
// Defines the queue.
public final static String QUEUE="jms/MyTestQueue";
private QueueConnectionFactory qconFactory;
private QueueConnection qcon;
private QueueSession qsession;
private QueueSender qsender;
private Queue queue;
private TextMessage msg;
/**
* Creates all the necessary objects for sending
* messages to a JMS queue.
*
* @param ctx JNDI initial context
* @param queueName name of queue
* @exception NamingException if operation cannot be performed
* @exception JMSException if JMS fails to initialize due to internal error
*/
public void init(Context ctx, String queueName)
throws NamingException, JMSException
{
qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
qcon = qconFactory.createQueueConnection();
qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queue = (Queue) ctx.lookup(queueName);
qsender = qsession.createSender(queue);
msg = qsession.createTextMessage();
qcon.start();
}
/**
* Sends a message to a JMS queue.
*
* @param message message to be sent
* @exception JMSException if JMS fails to send message due to internal error
*/
public void send(String message) throws JMSException {
msg.setText(message);
qsender.send(msg);
}
/**
* Closes JMS objects.
* @exception JMSException if JMS fails to close objects due to internal error
*/
public void close() throws JMSException {
qsender.close();
qsession.close();
qcon.close();
}
/** main() method.
*
* @param args WebLogic Server URL
* @exception Exception if operation fails
*/
public static void main(String[] args) throws Exception {
Context ic = getInitialContext("t3://localhost:7001");
QueueSend qs = new QueueSend();
qs.init(ic, QUEUE);
readAndSend(qs);
qs.close();
}
private static void readAndSend(QueueSend qs)
throws IOException, JMSException
{
qs.send("ciao");
System.out.println("JMS Message Sent: ciao \n");
}
private static InitialContext getInitialContext(String url)
throws NamingException
{
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
env.put(Context.PROVIDER_URL, url);
return new InitialContext(env);
}
}
当我启动主,我有这样的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/security/service/PrivilegedActions
at weblogic.jndi.WLSJNDIEnvironmentImpl.<clinit>(WLSJNDIEnvironmentImpl.java:57)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at weblogic.jndi.internal.JNDIEnvironment.getJNDIEnvironment(JNDIEnvironment.java:37)
at weblogic.jndi.Environment.<clinit>(Environment.java:92)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at test.QueueSend.getInitialContext(QueueSend.java:109)
at test.QueueSend.main(QueueSend.java:86)
我已经成立,与谷歌,该PrivilegedActions是在weblogic。 security.service(weblogic-api.jar;我已经包括这个jar在我的项目,但内部它没有这个类),但只是12.1.3版本的问题?
感谢您的回复
与weblogic 12.2.1相同的问题 – Alex
我与Weblogic 12.1.3有同样的问题。您将哪些jar文件添加到项目中?我找不到weblogic-api.jar。只有一个wls-api.jar。我将wls-api.jar和weblogic.jar添加到我的类路径中,但问题仍然存在。 – AliReza19330
我正在使用weblogic 12.1.3我终于找到了所需的jar文件。它位于:'wlserver \ modules \ com.oracle.css.weblogic.security.wls_7.1.0.0.jar' – AliReza19330