未找到 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 服务未正常关闭问题解决。

漏洞分享WebLogic反序列化漏洞(CVE-2018-2628)漫谈

搭建weblogic12.1.3

Weblogic漏洞利用

linux运维之weblogic12.1.3安装部署

Windos Server 2016环境单机环境weblogic12.1.3安装部署