Dos*_*oss 6 weblogic jax-ws java-ee
我有一个独立的批处理程序,它运行在jdk1.6.0_31上.这个独立程序具有JAX-WS客户端和EJB客户端.在为EJB客户端添加wlfullclient.jar之前,JAX-WS客户端工作正常,没有添加任何jar.现在使用类路径中的wlfullclient.jar,我得到以下异常.请让我知道如何解决这个问题.感谢您的帮助.
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/ws /spi/ProviderImpl
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at javax.xml.ws.spi.FactoryFinder.safeLoadClass(FactoryFinder.java:150)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:30)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:90)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
at javax.xml.ws.Service.create(Service.java:691)
Run Code Online (Sandbox Code Playgroud)
你有这样的运气吗?我在 JetSpeed 2.2.2(基于 tomcat 的门户服务器)上运行时遇到了完全相同的问题。在我将 wlfullclient.jar 包含在服务器的 lib 文件夹中之前,我的 Web 服务工作正常。包含后,它会在实例化时爆炸,并且与上面包含的堆栈跟踪完全相同。
我的想法(现阶段的理论)如下:
wlfullclient.jar 有一个类,其名称和包与 Metro Web 服务堆栈中已有的类相同。该类在 Metro 类之前加载,然后引导类加载沿着加载 Web 逻辑实现而不是 Metro 实现的路径进行。Web 逻辑实现不存在(我们并没有努力包含它们,因为我们想使用标准 java),这解释了 NoClassDefFound。
值得注意的是,我没有在 Metro 和 wlfullclient.jar 中找到具有相同名称和包的假定类。从这个意义上说,该类类似于目前的希格斯玻色子。那么假设它存在,该怎么办呢?
我很想知道您是否找到了解决方案。
我还应该补充一点:
我需要包含 wlfullclient.jar,因为同一服务器上运行的其他 portlet 使用它。我无法删除它,但我自己不使用它。
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |