2016-03-31 25 views
0

私はtHashOutput - > tHashInputを使用して2つの応答をマージしようとしていますので、まずそれを単純で簡単な仕事に使用しようとしています。 ID付きのSoap UIリクエストを介して送信し、DBからのこのID検索名に基づいて結果として表示します。データはhashOutputに挿入されますが、hashInputにはありません。TalendでtHashOutputとtHashInputを使用する

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> 

例外:ここ

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 

が私の仕事はどのように見えるかです: enter image description here

マイtXMLMap: enter image description here

が助けてくれてありがとう。公式フォーラムでのTalendチームからShongから

答えて

1

回答:

こんにちは 私は、これは「聴き続ける」ボックスがtESBRequestProviderにチェックされているので、onsubjobOKとリンクtHashInputは動作しないだろうと思います。この問題を解決するには、 tESBRequestProvider ..... tHashOutput - oncomponentok-tHashInput - main - tESBResponseProvider Shong

関連する問題