2012-06-20 78 views
3

我已经使用cxf-codegen-plugin生成了一个Web服务客户端,并且本地我正在运行此代码并且它连接到了Web服务。WebLogic上的CXF:JAXBException - 属性不受支持

当我尝试将我的应用程序部署到我们的WebLogic服务器时出现问题。当我*ServiceImplService类试图实例,下面的异常被抛出:

Caused by: javax.xml.bind.JAXBException: property "supressAccessorWarnings" is not supported 

从我所收集的,这可以从干的WebLogic提供一些JAXB相关类的旧版本。我已经(分开)尝试添加com.sun.xml.bind.*,javax.xml.*,javax.jws.*并且绝望甚至com.sun.*weblogic-application.xmlprefer-application-packages元素,但仍然是相同的结果。

任何人都知道什么可以解决这个问题,或者有更进一步的调试建议吗?


一些额外的信息,如果它是相关

  • CXF版本:2.6.1
  • 的WebLogic版本:10.3.4.0

的weblogic-application.xml中,没有任何我尝试过的修改:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<wls:weblogic-application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/j2ee_1_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-application.xsd"> 
    <wls:prefer-application-packages> 
     <wls:package-name>org.hibernate.*</wls:package-name> 
     <wls:package-name>antlr.*</wls:package-name> 
     <wls:package-name>org.springframework.*</wls:package-name> 
     <wls:package-name>net.bull.*</wls:package-name> 
     <wls:package-name>org.apache.commons.*</wls:package-name> 
    </wls:prefer-application-packages> 
</wls:weblogic-application> 

抛出的异常:

Caused by: javax.xml.bind.JAXBException: property "supressAccessorWarnings" is not supported 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:118) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:202) 
    at sun.reflect.GeneratedMethodAccessor391.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:128) 
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:277) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372) 
    at weblogic.wsee.jaxws.tubeline.ConfigReaderTubelineDeploymentListener.readConfigFile(ConfigReaderTubelineDeploymentListener.java:164) 
    at weblogic.wsee.jaxws.tubeline.ConfigReaderTubelineDeploymentListener.init(ConfigReaderTubelineDeploymentListener.java:52) 
    at weblogic.wsee.jaxws.spi.WLSServiceDelegate$WLSTubelineDeploymentListenerRepository.<init>(WLSServiceDelegate.java:323) 
    at weblogic.wsee.jaxws.spi.WLSServiceDelegate.<init>(WLSServiceDelegate.java:94) 
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.<init>(WLSProvider.java:586) 
    at weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:120) 
    at weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:112) 
    at weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:83) 
    at javax.xml.ws.Service.<init>(Service.java:56) 
    at <my package name>.PutSituationServiceImplService.<init>(PutSituationServiceImplService.java:47) 
    ... 7 more 

回答

1

如果有人来一起更好的答案,我会标记为选定的一个,但现在:

似乎从事实上,这源于在WebLogic耗材提供JAXB 2.0和JAXB 2.1,而此CXF版本使用JAXB 2.2功能。

从我所了解的情况来看,不可能使用prefer-package-elements来选择1)已导入JDK或2)sun内部类的类。您可以选择将jar文件放入JDK/JRE的认可折页中,但我不想走这条路线。

目前我已将CXF降级到v.2.2.12,这是使用JAXB 2.1的最后一个CXF版本。

0

同样的错误是由METRO 2.0库造成的。当您尝试从wdsl创建Web服务时,该库会自动添加到NetBeans项目中。

由于我不需要这个库,我将它从项目中删除。

相关问题