2013-05-24 9 views
9

Próbuję utworzyć klienta usługi sieci Web przy użyciu kreatora Eclipse Juno SR2. Usługa jest poprawnie wdrożona i działa na serwerze Glassfish 3.1.2 i mogę zobaczyć plik WSDL lub utworzyć klienta za pomocą Axis. Problem pojawia się, gdy próbuję użyć CXF (próbował CXF 2.6.8 i 2.7.5), aby utworzyć klienta w dynamicznym projektem internetowej stworzonej na GlassFish 3.1.2:Eclipse Web Service Client i kreator CXF

Loading FrontEnd jaxws ... 
Loading DataBinding jaxb ... 
wsdl2java -client -d /Users/dude/Documents/SOA/workspace/gf/.cxftmp/src -classdir /Users/dude/Documents/SOA/workspace/gf/build/classes -p http://testservice.csiaf.unifi.it/=it.unifi.csiaf.testservice -impl -validate -exsh false -dns true -dex true -wsdlLocation http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl -verbose -defaultValues -fe jaxws -db jaxb -wv 1.1 http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
wsdl2java - Apache CXF 2.6.8 

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Users/dude/glassfish3/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/usr/local/apache-cxf-2.6.8/lib/slf4j-jdk14-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 

WSDLToJava Error: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition from : http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
Caused by : WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactory 

org.apache.cxf.tools.common.ToolException: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition from : http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
Caused by : WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactory 
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:420) 
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) 
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) 
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) 
    at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184) 
Caused by: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition from : http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
Caused by : WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactory 
    at org.apache.cxf.wsdl11.WSDLDefinitionBuilder.parseWSDL(WSDLDefinitionBuilder.java:97) 
    at org.apache.cxf.wsdl11.WSDLDefinitionBuilder.build(WSDLDefinitionBuilder.java:69) 
    at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:82) 
    at org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:59) 
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:198) 
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164) 
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412) 
    ... 4 more 
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactory 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:243) 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:192) 
    at org.apache.cxf.wsdl11.WSDLDefinitionBuilder.parseWSDL(WSDLDefinitionBuilder.java:78) 
    ... 10 more 
Caused by: java.lang.RuntimeException: Cannot create a secure XMLInputFactory 
    at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:299) 
    at org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:254) 
    at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1423) 
    at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1317) 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:233) 
    ... 12 more 

Jeśli próbuję wykonać wsdl2java jako wiersza poleceń działa i .java pliki tworzone są:

macpro:glassfish3 dude$ /usr/local/apache-cxf-2.6.8/bin/wsdl2java -client -d /Users/dude/Documents/SOA/workspace/gf/.cxftmp/src -classdir /Users/dude/Documents/SOA/workspace/gf/build/classes -p http://testservice.csiaf.unifi.it/=it.unifi.csiaf.testservice -impl -validate -exsh false -dns true -dex true -wsdlLocation http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl -verbose -defaultValues -fe jaxws -db jaxb -wv 1.1 http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
Loading FrontEnd jaxws ... 
Loading DataBinding jaxb ... 
wsdl2java -client -d /Users/dude/Documents/SOA/workspace/gf/.cxftmp/src -classdir /Users/dude/Documents/SOA/workspace/gf/build/classes -p http://testservice.csiaf.unifi.it/=it.unifi.csiaf.testservice -impl -validate -exsh false -dns true -dex true -wsdlLocation http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl -verbose -defaultValues -fe jaxws -db jaxb -wv 1.1 http://localhost:8888/TestServiceGlassfish/TeamsService?wsdl 
wsdl2java - Apache CXF 2.6.8 

Przypuszczam, że jest jakiś problem w kombi Eclipse + CXF, ponieważ linia poleceń działa, ale nie mam pojęcia o tym, jak go rozwiązać . Dowolny pomysł ?

Odpowiedz

10

Musisz upewnić Woodstox 4.2.0 jest podejmowany. Alternatywnie, należy ustawić właściwość systemu org.apache.cxf.stax.allowInsecureParser do prawdziwej

+0

Chyba masz rację: problemem jest to, że nawet dodanie słoików Woodstox do ścieżki budowania projektu (nawet dodając je w katalogach CXF więc są one zbierane przez Eclipse podczas dodawania runtime) nie wystarcza: czarodziej wydaje Ignoruj ​​ich. Jak dotąd rozwiązany, aby wrócić do starszej CXF gdzie Woodstox nie była potrzebna, a ja złożył błąd Eclipse poprosić ich, aby sprawdzić, jak działa kreator. – Marco

+0

Która wersja nie wymaga Woodstox? – pacoverflow

+1

przypadku uaktualnienia do CXF 3.0.0 lub nowszy, to nie powinno ** ** ** dodać woodstock ** (woodstox-core-ASL i stax2-API) zależności. Jeśli to zrobisz, otrzymasz słynny wyjątek –

2

Spróbuj usunąć te 2 pliki jar z katalogu glassfish\modules:

  • woodstox-core-asl.jar
  • stax2- api.jar

Myślę, że zapobiegnie to użyciu plików 2 JAR (woodstox i stax2) z projektu CXF po wdrożeniu.

0

Spróbuj wykluczyć tego, czy istnieje jako zależność gdzieś i używać Woodstox 4.2.0:

<artifactId>wstx-asl</artifactId> 
<groupId>org.codehaus.woodstox</groupId> 
0

I w obliczu tego samego problemu w JDeveloper i że został rozwiązany przez dodanie „woodstox-core-ASL-4.2 .1.jar "do ścieżki klas.

0

ja stoi ten sam problem, ale wdrożenie go do internetowej kuli, a po badania kilku godzinach zorientowali się dokładnie wersję dla woodstox, tj poniżej

<dependency> 
    <groupId>org.codehaus.woodstox</groupId> 
    <artifactId>woodstox-core-asl</artifactId> 
    <version>4.2.0</version> 
</dependency> 

Ten https://bugs.eclipse.org/bugs/show_bug.cgi?id=409070 Link pomógł również zdobione .

klienci Zarówno Java i .Net działa poprawnie.