2012-06-20 6 views
3

Я создал клиент веб-службы, используя cxf-codegen-plugin, и локально я выполняю этот код очень хорошо и подключается к веб-службе.CXF on WebLogic: 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.* в prefer-application-packages элемент weblogic-application.xml, но все тот же результат.

Кто-нибудь знает, что может исправить это, или есть предложения по отладке forther?


Некоторая дополнительная информация, в случае, если она имеет отношение

  • 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). У вас есть возможность разместить файлы jar в одобренных слотах JDK/JRE, но я не хотел идти по этому маршруту.

В настоящее время я понизил CXF до версии 2.2.2.12, которая является последней версией CXF для использования JAXB 2.1.

0

Эта ошибка возникает из-за библиотеки METRO 2.0. Эта библиотека автоматически добавляется в проект NetBeans при попытке создать веб-сервис из wdsl.

Поскольку мне эта библиотека не нужна, я удалил ее из проекта.

Смежные вопросы