Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glassfish v3中com/sun/istack/logging/Logger的NoClassDefFoundError_Glassfish_Jax Ws_Classloader_Glassfish 3 - Fatal编程技术网

Glassfish v3中com/sun/istack/logging/Logger的NoClassDefFoundError

Glassfish v3中com/sun/istack/logging/Logger的NoClassDefFoundError,glassfish,jax-ws,classloader,glassfish-3,Glassfish,Jax Ws,Classloader,Glassfish 3,我有一个调用SOAP服务的应用程序客户端。我使用了glassfish发行版中的wsimport来生成ws类,glassfish v2中的一切都很好。当我从v3运行它(webstart)时,应用程序运行良好,但当我启动SOAP调用时,我得到 Exception in thread "Thread-146" java.lang.NoClassDefFoundError: com/sun/istack/logging/Logger at java.lang.ClassLoader.define

我有一个调用SOAP服务的应用程序客户端。我使用了glassfish发行版中的wsimport来生成ws类,glassfish v2中的一切都很好。当我从v3运行它(webstart)时,应用程序运行良好,但当我启动SOAP调用时,我得到

Exception in thread "Thread-146" java.lang.NoClassDefFoundError: com/sun/istack/logging/Logger
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at com.sun.jnlp.JNLPClassLoader.findClass(JNLPClassLoader.java:257)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at com.sun.xml.ws.policy.jaxws.WsitPolicyResolver.<clinit>(WsitPolicyResolver.java:62)
    at com.sun.xml.ws.policy.jaxws.WsitPolicyResolverFactory.doCreate(WsitPolicyResolverFactory.java:48)
    at com.sun.xml.ws.api.policy.PolicyResolverFactory.create(PolicyResolverFactory.java:58)
    at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:131)
    at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:267)
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:230)
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:178)
    at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:106)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at (class generated from wsdl)
    at (SOAP call)
线程“thread-146”java.lang.NoClassDefFoundError中的异常:com/sun/istack/logging/Logger 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClass(ClassLoader.java:621) 位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 位于java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在java.net.URLClassLoader.access$000(URLClassLoader.java:56) 位于java.net.URLClassLoader$1.run(URLClassLoader.java:195) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:188) 位于com.sun.jnlp.JNLPClassLoader.findClass(JNLPClassLoader.java:257) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:307) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:252) 位于java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 位于com.sun.xml.ws.policy.jaxws.wsitpolicyrolver。(wsitpolicyrolver.java:62) 在com.sun.xml.ws.policy.jaxws.wsitpolicyrolverfactory.doCreate(wsitpolicyrolverfactory.java:48) 位于com.sun.xml.ws.api.policy.PolicyResolverFactory.create(policySolverFactory.java:58) 位于com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:131) 位于com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:267) 位于com.sun.xml.ws.client.WSServiceDelegate。(WSServiceDelegate.java:230) 位于com.sun.xml.ws.client.WSServiceDelegate。(WSServiceDelegate.java:178) 位于com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:106) 位于javax.xml.ws.Service。(Service.java:56) at(从wsdl生成的类) at(SOAP呼叫) 我甚至在任何地方都找不到命名类,而且在网上似乎几乎没有对它的引用

编辑它在jaxb-osgi.jar中


这不是应该由glassfish提供的吗?当然,如果我将其包含在我的应用程序中,它会带来冲突的风险?

对您的问题的描述和重现步骤一点也不清楚,但GlassFish v3捆绑包Metro 2.0和Java SE 6附带:

有关具体何时发生这种情况的详细分析,请参见。这些失败的原因是Metro 2.0包含JAX-WS 2.2,这与内置于JavaSE6中的JAX-WS 2.1冲突。只有在没有使用我们的安装脚本Metro-on-glassfish.xml/Metro-on-tomcat.xml安装Metro 2.0时,您才会看到这些失败。例如,如果您通过更新中心为GlassFish V3安装了Metro 2.0,或者如果您使用内置在NetBeans中的GlassFish V3版本,则会出现这种情况

最简单的解决方案是下载并运行安装脚本。脚本将包含JAX-WS2.2API的文件webservices-api.jar复制到
/lib/annowed
中。或者,您当然可以手动将
webservicesapi.jar
复制到合适的目录中

而且由于
com/sun/istack/logging/Logger
是,您很可能处于上述情况:

Metro 2.0捆绑了JAX-WS 2.2。JavaSE6包含JAX-WS2.1(SE6Upgrade3和更早版本包含JAX-WS2.0)。这意味着Java将在默认情况下选择JAX-WS2.1API,而利用JAX-WS2.2特性的实现和代码将无法工作


这听起来可能有关联,但在本例中,glassfish v3似乎被破坏了。我使用了glassfish v3中的wsimport,并将其部署到同一台服务器上。然后,我通过webstart(Java6)和“boom”运行应用程序客户端。这意味着这个应用程序客户端不能由任何标准的j2se安装运行——这有点忽略了webstart的要点。不过,这可能会让我找到一个解决方案。@Draemon问题不是GlassfishV3,而是Java6和JAX-WS2.2。因此,由于您使用的是JWS,我建议在您的案例中,在客户端使用与Java 6捆绑的
wsimport
。不幸的是,由于Oracle和Java.net已经发生了巨大的变化,我无法理解其中的细节(通过了粘贴,这非常有用),所以wiki页面不再工作。所以情况是这样的,我有一个JavaWebStart应用程序,需要从GlassFishV3服务器调用Web服务。它似乎是100%可复制的。问题是javaws(客户端jdk)是2.1,而glassfish是2.2。Glassfish决定告诉web start应用程序加载哪些JAR。web start应用程序使用的资源包括:jaxb api osI遇到了相同的问题。你有没有解决过这个问题?