Ich versuche, zwei Antworten mit tHashOutput -> tHashInput zusammenzufassen, also versuche ich zunächst, es für einfache, einfache Arbeit zu verwenden, und es funktioniert nicht. Ich sende über Soap UI Anfrage mit ID, dann basierend auf dieser ID retrive Namen aus der DB und zeige es als Ergebnis. Daten werden in hashOutput eingefügt, sind aber nicht in hashInput enthalten.Verwendung von tHashOutput und tHashInput in Talend esb
WSDL:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wsdl:definitions name="customerSoap"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.talend.org/service/"
targetNamespace="http://www.talend.org/service/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.talend.org/service/">
<s:element name="getCustomer">
<s:complexType>
<s:sequence>
<s:element name="customerId" type="s:integer"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getCustomerResponse">
<s:complexType>
<s:sequence>
<s:element name="getCustomerResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getCustomerName">
<s:complexType>
<s:sequence>
<s:element name="customerId" type="s:integer"></s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getCustomerNameResponse">
<s:complexType>
<s:sequence>
<s:element name="customerNameResult" type="s:string"></s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getCustomerAddress">
<s:complexType>
<s:sequence>
<s:element name="customerId" type="s:integer"></s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getCustomerAddressResponse">
<s:complexType>
<s:sequence>
<s:element name="customerAddressResult" type="s:string"></s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="getCustomerRequest">
<wsdl:part element="tns:getCustomer" name="parameters"/>
</wsdl:message>
<wsdl:message name="getCustomerResponse">
<wsdl:part element="tns:getCustomerResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getCustomerNameRequest">
<wsdl:part name="parameters" element="tns:getCustomerName"></wsdl:part>
</wsdl:message>
<wsdl:message name="getCustomerNameResponse">
<wsdl:part name="parameters" element="tns:getCustomerNameResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="getCustomerAddressRequest">
<wsdl:part name="parameters" element="tns:getCustomerAddress"></wsdl:part>
</wsdl:message>
<wsdl:message name="getCustomerAddressResponse">
<wsdl:part name="parameters" element="tns:getCustomerAddressResponse"></wsdl:part>
</wsdl:message>
<wsdl:portType name="customerSoap">
<wsdl:operation name="getCustomer">
<wsdl:input message="tns:getCustomerRequest"/>
<wsdl:output message="tns:getCustomerResponse"/>
</wsdl:operation>
<wsdl:operation name="getCustomerName">
<wsdl:input message="tns:getCustomerNameRequest"/>
<wsdl:output message="tns:getCustomerNameResponse"/>
</wsdl:operation>
<wsdl:operation name="getCustomerAddress">
<wsdl:input message="tns:getCustomerAddressRequest"/>
<wsdl:output message="tns:getCustomerAddressResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="customerSoap" type="tns:customerSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getCustomer">
<soap:operation soapAction="http://www.talend.org/service/getCustomer" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getCustomerName">
<soap:operation soapAction="http://www.talend.org/service/getCustomer" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getCustomerAddress">
<soap:operation soapAction="http://www.talend.org/service/getCustomer" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="airport">
<wsdl:port binding="tns:customerSoap" name="customerSoap">
<soap:address location="http://localhost:8090/esb/customerSoap"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Ausnahme:
Starting job customerSoap_getCustomerName at 10:31 31/03/2016.
[statistics] connecting to socket on port 3524
[statistics] connected
mar 31, 2016 10:31:04 AM org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
INFO: Creating Service {http://www.talend.org/service/}airport from WSDL: C:/Users/VKAROL/Downloads/TESB/Studio/workspace/FINAL10/services/customerSoap_0.1.wsdl
mar 31, 2016 10:31:05 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be http://localhost:8090/esb/customerSoap
2016-03-31 10:31:05.163:INFO:oejs.Server:jetty-8.1.14.v20131031
2016-03-31 10:31:05.221:INFO:oejs.AbstractConnector:Started [email protected]:8090
web service [endpoint: http://localhost:8090/esb/customerSoap] published
mar 31, 2016 10:31:08 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {http://www.talend.org/service/}airport#{http://www.talend.org/service/}getCustomerName has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not generate the XML stream caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [2,0].
at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:94)
at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:54)
at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:48)
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:136)
at org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:234)
at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [2,0]
at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:685)
at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2141)
at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2047)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1131)
at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:771)
at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:701)
at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:625)
at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:91)
... 28 more
Hier ist, wie meine Arbeit wie folgt aussieht:
Danke für die Hilfe .