文章为本人部署项目时的遇到的问题及解决办法。
为了兼容性的问题,搞了有一个月,幸好最终解决了。
第一中方案我也提到过就是让webapp 的lib优先加载,这种方式我就不说了,如果jar包很多我
不建议用此方式,因为解决jar冲突是头痛而又繁琐的事
那么我采用第二种方案即不让lib优先加载。
使用这种方案的时候遇到了一个棘手问题,cxf的客户端不能使用。其他的访问方式好用,只有
JaxWsDynamicClientFactory 出现下面这个错误。
[error] IOException during exec() of compiler "javac". Check your path environment variable
javax.xml.bind.JAXBException: "" doesnt contain ObjectFactory.class or index
起初只关注了后面的错误,以为jar冲突,结果劳心费神也没发现哪错了。后来才注意到前面的异常,这才是关键啊,网上搜了一大圈,这个问题提得人不少可是没有一个人解决。当然异常的信息是不准确的,javac的环境是有的。没办法只能跟源码,可是代码页太多了,实在跟不下去。仔细看了一下错误,应该是路径的问题,因为客户端使用 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();所以想问题还是在JaxWsDynamicClientFactory,发现了setupclasspath这个方法,于是设了断点,最后定为到错误,代码为compiler.java中 internalCompile方法 p = Runtime.getRuntime().exec(cmdArray);出错可是心想为什么在tomcat下好用呢。将cmdArray的内容考了出来,坑爹啊,怎么这么长。既然是这出现问题那么就拷出来自己在cmd运行一下,果然出错,怎么回事,原来是命令太长,bat脚本执行的长度是有限的。不能算cxf的bug,但是起码apache没考虑到啊,好了问题找到了就容易了。
在这里发发牢骚,因为这个问题折磨坏我了~~
以下是我所有遇到weblogic问题的解决方案,基本囊括了所有的错误,指定会对大家有所帮助的:
1、 新增配置文件weblogicManagement.properties 分别配置了,weblogic的server、common以及weblogic 拷贝项目包所在的目录,一定是绝对路径。注意不要用\而用/。
2、 自定义CXFServiceServlet.java类作为servlet。
3、 需要在在web.xml中配置CXFServiceServlet的初始化参数,
<init-param>
<param-name>webloicProperties</param-name>
<param-value>*/weblogicManagement.properties</param-value>
</init-param>
<init-param>
<param-name>isWeblogic</param-name>
<param-value>true</param-value>
</init-param>
其中webloicProperties的参数值为weblogicManagement.properties绝对路径,
4、 需要将项目中wstx-asl-3.2.9.jar包考到weblogic/server/lib目录下
5、 Sunjdk需要将geronimo-ws-metadata_2.0_spec-1.1.2.jar,jaxb-api-2.1.jar,geronimo-jaxws_2.1_spec-1.0.jar包考到jre/lib/endorsed下
6、 如果jrockit jdk 则在第五步的基础上还要增加neethi-2.0.4.jar
7、 如果数据源是db2或者sqlserver 需要将antrl.jar和javax.persistence.jar加入jre/lib/endorsed下
8、 在jrockit jdk下,发布的CXF webservice都要在方法前加入注解
@webMethod(operationName=”方法名”)
9、 在配置自定义数据源时需要在内容中注明属性值需要加上属性:user="内容"、url=“内容”
10、部署连接池用如下方式,<bean id="defaultDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/TBSystemDataSource</value>
</property>
</bean>
用此方式部署
11、 不同的环境下要对 nativeJdbcExtractor做不同的修改,weblogic如下
org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor"
12、修改cxf的源码compiler.java,重新编译一下,在考回到jar包中。
附件是我修改的文件,如果还有什么问题欢迎大家留言。我用的是cxf2.2.12版本
分享到:
相关推荐
#### 如何在WAS和Weblogic上部署CXF **1. WAS配置概述** 对于WebSphere Application Server (WAS),根据不同的版本(如小于6.1.0.29),可能需要采取不同的配置策略: - **未安装Web Services Feature Pack**:将...
"websphere下部署CXF项目jar包冲突问题解决方式"这一主题聚焦于如何在IBM Websphere Application Server (WAS)中成功部署包含Apache CXF Web服务的WAR包,解决由于类加载导致的运行异常。 Apache CXF是一个流行的...
这个文档可能是关于在特定环境下使用 CXF 遇到的问题及其解决方案的记录,对于在 WebLogic 上部署和管理 CXF 应用程序的开发者来说,具有参考价值。 ** 文件结构与内容** 压缩包中的文件名表明,除了 JacORB 的不同...
本项目的开发环境为 CXF 2.3.0、Spring 3.0.1 和 WebLogic 9.2。此外,还需要一系列的依赖库来支持应用的正常运行。以下是必要的 JAR 文件列表: - **asm-3.3.1.jar** - 用于支持字节码操作。 - **commons-codec-...
在部署时,你需要将CXF的依赖库加入到项目的类路径中,并配置相应的服务发布和监听端点。 6. **CXF工具**:CXF提供了一些工具,如WSDL-to-Java(wsdl2java)和Java-to-WSDL(java2wsdl),帮助开发者在WSDL和Java...
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
Apache CXF最初由XFire项目发展而来,后来与 Celtix 合并并改名为CXF。它的核心功能包括SOAP和RESTful Web服务的实现,XML数据绑定,WS-*协议支持,以及多种传输和绑定机制。CXF支持多种编程模型,如JAX-WS和JAX-RS...
WebLogic Server 9.2 是Oracle公司的一款企业级Java应用服务器,它提供了完整的Java EE(J2EE)平台支持,包括Servlet、JSP、EJB等技术,用于开发、部署和管理分布式Web应用程序。在本例中,Weblogic92作为服务端...
将CXF解压后的lib目录中的JAR文件导入到项目中的`WebContent/WEB-INF/lib`,或者直接复制到对应文件夹,然后刷新项目,使Eclipse识别这些依赖。 5. **定义Web服务接口**: 使用Java的注解来定义服务接口,如`@...
** Maven与CXF项目搭建详解 ** Maven和CXF是Java开发中常见的两个工具,它们在构建Web服务方面有着紧密的结合。Maven是一个项目管理和综合工具,它帮助开发者管理项目的依赖、构建过程和生命周期。而CXF则是一个...
6. **部署与测试**:在MyEclipse中,你可以直接运行Web项目,CXF会自动部署你的服务。使用CXF提供的测试客户端或者自定义一个简单的HTTP请求,就可以测试你的Web服务是否正常工作。 7. **WSDL生成与使用**:CXF可以...
was8.5 部署cxf demo
在本示例中,我们将深入探讨如何将CXF技术集成到一个项目中,以创建、部署和管理Web服务。 **1. 集成准备** 在开始集成之前,确保你的开发环境已安装了以下工具: - Java Development Kit (JDK):CXF需要Java 8或...
【CXF结合Spring项目实例】是一个综合性的教程,旨在演示如何在Java开发环境中整合Apache CXF与Spring框架,实现高效、灵活的Web服务。Apache CXF是一个开源的Web服务框架,它支持SOAP、RESTful等多种服务风格,并且...
在"CXF结合Spring"的场景中,Spring框架作为依赖注入(DI)和面向切面编程(AOP)的优秀解决方案,能够与CXF进行深度整合。Spring通过其`ApplicationContext`容器管理CXF服务,使得服务的生命周期可以与Spring容器中...