plugin:soap:java6
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Bekannte Probleme bei der Verwendung von jameica.soap mit Java 1.6
Der folgende Text beschreibt ein bekanntes Problem, welches auftritt, wenn das Plugin „jameica.soap“ auf einem System mit SUN Java 1.6 verwendet wird. Das Plugin verwendet die SOAP-Implementierung CXF aus dem Apache-Projekt.
Ursache des Fehler ist ein Versionskonflikt zwischen der von CXF verwendeten JAXB-Implementierung und der von SUN Java 1.6 bereits mitgelieferten Version. Das Problem ist bekannt und unter https://issues.apache.org/activemq/browse/SMX4-98 beschrieben.
Das Problem äussert sich durch folgende Fehlermeldung im Jameica-Log bzw. auf der Konsole:
[<Datum>][ERROR][de.willuhn.jameica.messaging.NamedQueue$Worker.send] consumer de.willuhn.jameica.soap.messaging.PublishServiceMessageConsumer$1 produced an error (javax.xml.ws.WebServiceException: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException) while consuming message [Fri May 15 13:18:49 CEST 2009] web server deployed [<Datum>][INFO][de.willuhn.jameica.messaging.NamedQueue$Worker.send] error while processing message javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:265) at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201) at org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:84) at javax.xml.ws.Endpoint.publish(Endpoint.java:170) at de.willuhn.jameica.soap.messaging.PublishServiceMessageConsumer.publish(PublishServiceMessageConsumer.java:137) at de.willuhn.jameica.soap.messaging.PublishServiceMessageConsumer.access$200(PublishServiceMessageConsumer.java:29) at de.willuhn.jameica.soap.messaging.PublishServiceMessageConsumer$1.handleMessage(PublishServiceMessageConsumer.java:61) at de.willuhn.jameica.messaging.NamedQueue$Worker.send(NamedQueue.java:245) at de.willuhn.jameica.messaging.NamedQueue$Worker.run(NamedQueue.java:268) Caused by: org.apache.cxf.service.factory.ServiceConstructionException at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:307) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:345) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:513) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:396) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163) at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114) at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:164) at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:334) at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:251) ... 8 more Caused by: javax.xml.bind.JAXBException: property "com.sun.xml.bind.defaultNamespaceRemap" is not supported at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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:202) at javax.xml.bind.ContextFinder.find(ContextFinder.java:376) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) at org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:532) at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:287) ... 18 more
Derzeit existieren folgende drei Workarounds für dieses Problem:
Downgrade auf Java 1.5
Nutzung des Endorsed-Mechanismus von Java
- Öffnen Sie das Verzeichnis [jameica|hibiscus-server]/plugins/jameica.soap/lib
- Erstellen Sie dort ein Unterverzeichnis mit dem Namen „endorsed“
- Verschieben Sie jetzt die drei Jar-Dateien, deren Name mit „jaxb-“ beginnt in dieses neue Unterverzeichnis.
lib |- endorsed | jaxb-api-2.1.jar | jaxb-impl-2.1.6.jar | jaxb-xjc-2.1.6.jar
- Öffnen Sie nun das Shell-Script, mit dem Sie den Server starten („jameicaserver.sh“, „jameica.sh“ oder „rcjameica“) in einem Texteditor.
- Falls jameicaserver.sh oder jameica.sh:
Fügen Sie zwischen „$_JCONSOLE“ und „-Djava.library…“ folgendes ein:-Djava.endorsed.dirs=plugins/jameica.soap/lib/endorsed
- Falls rcjameica:
Fügen Sie hinter „-Xmx256m“ folgendes ein:-Djava.endorsed.dirs=plugins/jameica.soap/lib/endorsed
- Starten Sie Jameica jetzt neu. Die Webservices sollten nun deployed und unter „https:<server>:8080/soap/“ samt WSDL-Dateien aufgelistet werden. ==== Deinstallation des Plugins „jameica.soap“ ==== Entfernen Sie die SOAP-Plugins, falls diese nicht benötigt werden. Löschen Sie hierzu die Verzeichnisse „jameica.soap“ und „hibiscus.soap“ aus dem Verzeichnis „[jameica|hibiscus-server]/plugins“.
Impressum | Datenschutz
plugin/soap/java6.1242387254.txt.gz · Zuletzt geändert: d.m.Y H:i von willuhn