【问题标题】:Standalone client not working for Weblogic JAX-WS Web Service (with message level security)独立客户端不适用于 Weblogic JAX-WS Web 服务(具有消息级安全性)
【发布时间】:2014-04-23 02:57:15
【问题描述】:

我使用 OEPE (Oracle Enterprise Pack for Eclipse) 和本地 Weblogic Server 12.1.1 实例开发了一个 JAX-WS (2.2) Web 服务。我在 Windows 环境中使用 Java 6。我使用 weblogic 附带的以下策略文件为其添加了消息级别的安全性:Wssp1.2-2007-Wss1.1-X509-Basic256.xml、Wssp1.2-2007-SignBody.xml、Wssp1.2-2007-加密身体.xml。我还使用 OEPE 开发了客户端并将其配置为发送所需的安全标头。我按照此文档开发 Web 服务、客户端并在两者中配置安全性:http://docs.oracle.com/cd/E24329_01/web.1211/e24488/message.htm

如果我在 weblogic 服务器上部署客户端,那么它工作正常,但我不能将它作为独立客户端运行。如果我将它部署在 Apache Tomcat 7 上,它也会失败。查看异常,它看起来需要很少的 weblogic 库。我已经从 $WL_HOME/server/lib 目录复制了 weblogic.jar 和 wseeclient.jar,但仍然无法正常工作。 这是我在tomcat上遇到的异常:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/WebserviceClient] threw exception [java.lang.NoClassDefFoundError: weblogic/utils/NestedException] with root cause
java.lang.ClassNotFoundException: weblogic.utils.NestedException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at javax.xml.parsers.FactoryFinder.newInstance(Unknown Source)
at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
at javax.xml.parsers.FactoryFinder.find(Unknown Source)
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:96)
at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:95)
at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:243)
at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:302)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:114)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

从过去两天开始,我一直在尝试解决这个问题,但没有任何运气,这让我发疯。我对 weblogic 和 web 服务相当陌生,所以不完全确定如何做到这一点。谁能告诉我在 tomcat 上或作为独立应用程序运行它需要哪些 jars?

谢谢, 安迪T

【问题讨论】:

    标签: web-services tomcat webservice-client ws-security weblogic12c


    【解决方案1】:

    我终于将 weblogic 安装目录中的所有 jars 复制到了我的独立客户端的 lib 中,然后复制了一些似乎不相关的 jars。我知道这不是一个很好的解决方案(因为它增加了大约 100 MB 的大小)并且仍然有一些不必要的 jar,但它现在解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多