2013-05-24 11 views
9

मैं एक्लिप्स जूनो एसआर 2 विज़ार्ड का उपयोग कर एक वेब सेवा क्लाइंट बनाने की कोशिश कर रहा हूं। सेवा सही ढंग से तैनात और ग्लासफ़िश 3.1.2 सर्वर पर चल रही है और मैं WSDL फ़ाइल देख सकता हूं या एक्सिस का उपयोग कर क्लाइंट बना सकता हूं। समस्या पैदा होती है अगर मैं CXF (कोशिश की CXF 2.6.8 और 2.7.5) का उपयोग करने के लिए एक ग्लासफिश 3.1.2 के लिए बनाई गई एक गतिशील वेब परियोजना में ग्राहक बनाने का प्रयास करें:ग्रहण वेब सेवा क्लाइंट विज़ार्ड और सीएक्सएफ

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 

अगर मैं पर अमल करने की कोशिश कमांड लाइन के रूप में wsdl2java यह काम करता है और जावा फ़ाइलों को बनाने से:

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 

मुझे लगता है वहाँ ग्रहण + CXF कॉम्बो में कुछ समस्या है, के बाद से कमांड लाइन से काम करता है, लेकिन मैं इसे कैसे हल करने के लिए के बारे में कोई सुराग नहीं है । कोई उपाय ?

उत्तर

10

आपको यह सुनिश्चित करने की ज़रूरत है कि वुडस्टॉक्स 4.2.0 उठाया जा रहा है। वैकल्पिक रूप से, सच

+0

मुझे लगता है कि आप सही हैं: समस्या यह है कि परियोजना निर्माण पथ में वुडस्टॉक्स जेएआर को जोड़ने (यहां तक ​​कि उन्हें सीएक्सएफ निर्देशिका में भी जोड़ना ताकि वे रनटाइम जोड़ते समय एक्लिप्स द्वारा चुने गए हों) पर्याप्त नहीं है: विज़ार्ड ऐसा लगता है उन पर ध्यान न दें। अब तक मैंने पुराने सीएक्सएफ पर वापस जाने का संकल्प किया है जहां वुडस्टॉक्स की आवश्यकता नहीं थी, और मैंने यह पूछने के लिए एक ग्रहण बग दायर किया है कि विज़ार्ड कैसे काम करता है। – Marco

+0

किस संस्करण को वुडस्टॉक्स की आवश्यकता नहीं है? – pacoverflow

+1

यदि आप सीएक्सएफ 3.0.0 या उसके बाद में अपग्रेड करते हैं, तो आपको ** ** ** ** वुडस्टॉक ** (वुडस्टॉक्स-कोर-एएसएल और स्टैक्स 2-एपीआई) निर्भरताओं को जोड़ना नहीं चाहिए। यदि आप करते हैं तो आपको प्रसिद्ध अपवाद मिलेगा –

2

करने के लिए सिस्टम संपत्ति org.apache.cxf.stax.allowInsecureParser सेट glassfish\modules निर्देशिका से इन 2 जार फ़ाइलों को हटाने का प्रयास करें:

  • woodstox कोर-asl.jar
  • stax2- api.jar

मुझे लगता है कि यह सीएक्सएफ परियोजना से 2 जेएआर फाइलों (वुडस्टॉक्स और स्टैक्स 2) को तैनाती के बाद इस्तेमाल करने से रोक देगा।

0

कोशिश इस को छोड़कर अगर यह एक निर्भरता के रूप में कहीं न कहीं मौजूद है, और Woodstox 4.2.0 का उपयोग करें:

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

मैं J डेवलपर में एक ही मुद्दा का सामना करना पड़ा और उस woodstox कोर-ASL-4.2 जोड़ने "द्वारा हल हो गया .1.jar "कक्षा के लिए।

0

मैं एक ही मुद्दे का सामना करना पड़ रहा था लेकिन वेब क्षेत्र के लिए तो उसे लागू करने, और के बाद कुछ ही घंटों के एक अनुसंधान नीचे

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

यानी woodstox के लिए सही संस्करण, पता लगा यह https://bugs.eclipse.org/bugs/show_bug.cgi?id=409070 लिंक भी यह पता लगा करने के लिए मदद ।

जावा और नेट दोनों क्लाइंट ठीक काम कर रहे हैं।

संबंधित मुद्दे