2016-03-31 9 views
0

tHashOutput -> tHashInput öğesini kullanarak iki yanıtı birleştirmeye çalışıyorum, bu yüzden öncelikle basit, basit bir iş için kullanmaya çalışıyorum ve işe yaramıyor. Sabun UI isteği ile ID ile gönderirim, daha sonra bu ID retrive ismini DB'den alır ve sonuç olarak gösteririm. Veriler hashOutput içine eklenmiştir, ancak hashInput'ta yok.Talent esb'de tHashOutput ve tHashInput kullanma

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> 

İstisna:

İşte
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 

olan benim işim nasıl göründüğünü: enter image description here

Benim tXMLMap: enter image description here

yardımın için teşekkür ederim . Talend Ekibinden resmi forumunda Shong dan

cevap

1

Cevap:

Merhaba Ben kutu asla işe yaramayacak tESBRequestProvider, onsubjobOK ile bağlantılı tHashInput üzerinde kontrol edilir 'dinleme tutmak' çünkü bu olduğunu düşünüyorum. Bunu çözmek için, iş tasarımını şu şekilde değiştirin: tESBRequestProvider ..... tHashOutput - oncomponentok-tHashInput - ana - tESBResponseProvider Saygılarımızla Shong