Tim*_*Tim 6 cxf glassfish java-metro-framework jax-ws classpath
我在Glassfish下运行我的企业应用程序时遇到以下问题(由其他人报告).在Jetty下它工作正常.
javax/xml/ws/spi/Provider提到创建META-INF/services/javax.xml.ws.spi.Provider资源,但这已经提供给CXF并且创建一个额外的资源文件并不能解决Glassfish下的这个问题.
有谁知道如何确保在GlassFish下使用CXF?
(我正在使用具有CXF依赖性2.2.5的Maven多模块项目)
谢谢!
蒂姆
编辑#1
暂时解决问题,只是使用Metro,但我真的很想知道如何使用CXF,如果有人有任何指示..如果没有任何作用我可能必须切换Web应用程序容器(或看看Metro填补我的要求)
编辑#2
一些解决方案通过添加<class-loader delegate="false"/>到sun-web.xml文件来详细说明war的修复.但是,这对非战争ee应用程序不起作用.
添加一个sun-web.xml并将delegate = false设置为类加载器:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD
Application Server 9.0 Servlet 2.5//EN'
'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'>
<sun-web-app>
<class-loader delegate="false"/>
</sun-web-app>
Run Code Online (Sandbox Code Playgroud)
Metro(Glassfish 的 JAX-WS 实现)jar 可能包含在 Glassfish 中,您可以将它们从类路径中排除吗?由于您使用的是 Maven,因此您应该分析 glassfish 依赖项并使用 Metro jar 的排除项。
看来您需要在 Metro jar 之前将 CXF jar 放在应用程序类路径上。您可能无法修改系统类加载器/类路径,但您可以更改它Thread.currentThread().getContextClassLoader()以使其首先加载 CXF。Glassfish 中还可能有一个类路径设置,您可以修改
查看javax.xml.ws.spi.FactoryFinder#find() 的源代码以了解提供程序实际上是如何加载的
| 归档时间: |
|
| 查看次数: |
6542 次 |
| 最近记录: |