我试图部署Axis Web服务的OC4J 10.1.3应用服务器。

我是用轴1.4之前和刚刚创造了所有的文件我自己的共享库。有1.4的问题,将其与1.5补丁所以现在我使用的,但它不包括所有的库。这一次我部署的axis2.war到OC4J服务器和我使用Axis2的管理页面尝试部署我的web服务。

如果我通过部署的Axis2 Web服务,然后我会得到一个java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z但我不能找到冲突的库。 Axis2中有它新的JAX-WS库,但我认为这是OC4J应用服务器上的问题。我排除xml.jar(因为它有旧JAXB 1.0库),这解决了我的本地机器上的问题,但不是在Linux中。

我试过编辑部署计划先搜索本地文件夹,这让我可以部署该服务,但是当我试图访问它,或WSDL,然后我得到关于类转换异常和JXDocumentBuilderFactory(我不错误“T具有此时的确切的错误)。

我比较了与那些在Linux中的共享库我的本地机器上,并且我用在每个相同的那些(我没有验证每个罐子的版本,虽然)。如果Axis2的部署到OC4J,我部署我的服务的Axis2我岂不继承的Axis2库(JAX-WS等)?

有帮助吗?

解决方案

尝试加入这个您的orion-application.xml中移除冲突的继承库:

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

更多这里:卸下和/或更换Oracle共享库默认

进口

修改结果 我搜索的共享库,发现不存在,JWS-api.jar文件在启动时被加载,并且不能被容易地除去:

<强>更换OC4J JAX-WS库结果 OC4J对JAX-WS的初步支持,遗憾的是这意味着OC4J启动期间,由Oracle加载过时的JAX-WS API和实现。这发生之前的共享库进入行动,在OC4J启动的一个非常早期的阶段。结果 启动时OC4J库被配置在$ ORACLE_HOME / J2EE /家boot.xml文件/ oc4j.jar引导罐子。为了摆脱这样的:

1张复印的jar文件为$ {oracle.home} / web服务/ LIB / JAXWS结果 2解压文件OC4J.jar结果 3-找到META-INF / boot.xml结果 用您的罐子此线4 - 替换路径:

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5重新包装oc4j.jar(不要忘记MANIFEST.MF - 使用罐-m META-INF / MANIFEST.MF)

原创文章: OC4J配置的Web服务

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top