未找到 Weblogic 12.1.3 PrivilegedActions 类
Posted
技术标签:
【中文标题】未找到 Weblogic 12.1.3 PrivilegedActions 类【英文标题】:Weblogic 12.1.3 PrivilegedActions class not found 【发布时间】:2016-08-16 02:59:38 【问题描述】:我创建了一个简单的项目,它调用 jms 队列并放入消息。
代码如下:
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)
我通过 google 发现 PrivilegedActions 位于 weblogic.security.service (weblogic-api.jar;我已将这个 jar 包含在我的项目中但是内部没有这个类)只是12.1.3版本的问题?
感谢回复
【问题讨论】:
与 weblogic 12.2.1 相同的问题 我对 Weblogic 12.1.3 有同样的问题。您将哪些 jar 文件添加到您的项目中?我找不到 weblogic-api.jar。只有一个 wls-api.jar。我在类路径中添加了 wls-api.jar 和 weblogic.jar,但问题仍然存在。 我用的是weblogic 12.1.3 终于找到了想要的jar文件。它位于此处:wlserver\modules\com.oracle.css.weblogic.security.wls_7.1.0.0.jar
【参考方案1】:
我找到了解决办法。
我已更新到 12.2.1 并生成了 wlfullclient.jar
。我已将其添加到构建库路径并删除了 WebLogic 库。
【讨论】:
以上是关于未找到 Weblogic 12.1.3 PrivilegedActions 类的主要内容,如果未能解决你的问题,请参考以下文章
myeclipse中的weblogic 服务未正常关闭问题解决。