MagentoJavaSOAP客户端
我开始使用ApacheCXF开发java客户机。我尝试登录并创建一个调用,以获取我的品红安装的存储列表。这个发现很有效。但后来我试图收到一份网店所有产品的清单。现在我得到一个有趣的错误消息 我正在使用Magento 1.6.1.0,它在ws-i模式下运行MagentoJavaSOAP客户端,java,magento,soap,cxf,Java,Magento,Soap,Cxf,我开始使用ApacheCXF开发java客户机。我尝试登录并创建一个调用,以获取我的品红安装的存储列表。这个发现很有效。但后来我试图收到一份网店所有产品的清单。现在我得到一个有趣的错误消息 我正在使用Magento 1.6.1.0,它在ws-i模式下运行 URL wsdlURL = new URL("http://someurl/api/v2_soap/?wsdl=1"); MagentoService ss = new MagentoService(wsdlURL, SERV
URL wsdlURL = new URL("http://someurl/api/v2_soap/?wsdl=1");
MagentoService ss = new MagentoService(wsdlURL, SERVICE_NAME);
MageApiModelServerWsiHandlerPortType port = ss.getMageApiModelServerWsiHandlerPort();
LoginParam loginParam = new LoginParam();
loginParam.setApiKey("password");
loginParam.setUsername("user");
LoginResponseParam sessionId = port.login(loginParam);
System.out.println("sessionId : " + sessionId.getResult());
StoreListRequestParam param = new StoreListRequestParam();
param.setSessionId(sessionId.getResult());
StoreListResponseParam storeListRespParam = port.storeList(param);
StoreEntityArray storeEntityArray = storeListRespParam.getResult();
List<StoreEntity> stores = storeEntityArray.getComplexObjectArray();
System.out.println(">>>> " + stores.size());
StoreEntity store = stores.get(0);
CatalogProductListRequestParam params = new CatalogProductListRequestParam();
params.setSessionId(sessionId.getResult());
params.setFilters(null);
params.setStore(String.valueOf(store.getStoreId()));
CatalogProductListResponseParam response = port.catalogProductList(params);
CatalogProductEntityArray catalogProdEntityArray = response.getResult();
List<CatalogProductEntity> products = catalogProdEntityArray.getComplexObjectArray();
System.out.println(">>>> " + products.size());
URL wsdlURL=新URL(“http://someurl/api/v2_soap/?wsdl=1");
MagentoService ss=新的MagentoService(wsdlURL,服务名称);
MageApiModelServerWsiHandlerPortType端口=ss.getMageApiModelServerWsiHandlerPort();
LoginParam LoginParam=新的LoginParam();
loginParam.setApiKey(“密码”);
loginParam.setUsername(“用户”);
LoginResponseParam sessionId=port.login(loginParam);
System.out.println(“sessionId:+sessionId.getResult());
StoreListRequestParam param=新的StoreListRequestParam();
参数setSessionId(sessionId.getResult());
StoreListResponseParam StoreListResParam=端口.storeList(参数);
StoreEntityArray StoreEntityArray=StoreListResParam.getResult();
List stores=storeEntityArray.getComplexObjectArray();
System.out.println(“>>>”+stores.size());
StoreEntity store=stores.get(0);
CatalogProductListRequestParam params=新CatalogProductListRequestParam();
params.setSessionId(sessionId.getResult());
参数设置过滤器(空);
params.setStore(String.valueOf(store.getStoreId());
CatalogProductListResponseParam响应=端口。catalogProductList(参数);
CatalogProductEntityArray catalogProdEntityArray=response.getResult();
List products=catalogProdEntityArray.getComplexObjectArray();
System.out.println(“>>>>”+products.size());
错误消息:
[com.ctc.wstx.exc.WstxEOFException:意外的EOF;需要元素的结束标记
看来反应的结构有问题
有人有主意吗
提前谢谢
整个堆栈跟踪:
Interceptor for {urn:Magento}MagentoService#{urn:Magento}catalogProductList has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:824)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:644)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:156)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:201)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:801)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1494)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1402)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:649)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:535)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:465)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:368)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:321)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
at $Proxy24.catalogProductList(Unknown Source)
at Client.main(Client.java:53)
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:784)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:96)
at org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:812)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:810)
... 20 more
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]
at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5466)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2685)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1050)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:192)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
... 26 more
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
at $Proxy24.catalogProductList(Unknown Source)
at Client.main(Client.java:53)
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:784)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:96)
at org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:812)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:810)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:644)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:156)
at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:201)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:801)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1494)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1402)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:649)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:535)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:465)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:368)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:321)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
... 2 more
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <sku>
at [row,col {unknown-source}]: [3336,6]
at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5466)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2685)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1050)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:192)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
... 26 more
{urn:Magento}MagentoService{urn:Magento}catalogProductList的侦听器已引发异常,正在解除
org.apache.cxf.interceptor.Fault:解组错误:意外的EOF;需要元素的关闭标记
在[行,列{未知源}]:[3336,6]
位于org.apache.cxf.jaxb.jaxbencoder.unmarshall(jaxbencoder.java:824)
位于org.apache.cxf.jaxb.jaxbencoder.unmarshall(jaxbencoder.java:644)
位于org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:156)
位于org.apache.cxf.interceptor.docliteralinterceptor.handleMessage(docliteralinterceptor.java:201)
位于org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
位于org.apache.cxf.endpoint.clientmpl.onMessage(clientmpl.java:801)
位于org.apache.cxf.transport.http.httpconductor$WrappedOutputStream.handleResponseInternal(httpconductor.java:1627)
http.httpconductor$WrappedOutputStream.handleResponse(httpconductor.java:1494)
位于org.apache.cxf.transport.http.httpconductor$WrappedOutputStream.close(httpconductor.java:1402)
位于org.apache.cxf.transport.AbstractConductor.close(AbstractConductor.java:56)
位于org.apache.cxf.transport.http.httpconductor.close(httpconductor.java:649)
位于org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderdingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
位于org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
位于org.apache.cxf.endpoint.clientmpl.doInvoke(clientmpl.java:535)
位于org.apache.cxf.endpoint.clientmpl.invoke(clientmpl.java:465)
位于org.apache.cxf.endpoint.clientmpl.invoke(clientmpl.java:368)
位于org.apache.cxf.endpoint.clientmpl.invoke(clientmpl.java:321)
位于org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
位于org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
位于$Proxy24.catalogProductList(未知来源)
位于Client.main(Client.java:53)
原因:javax.xml.bind.UnmarshalException
-除此之外:
[com.ctc.wstx.exc.WstxEOFException:意外的EOF;需要元素的关闭标记
在[行,列{未知源}]:[3336,6]]
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
位于org.apache.cxf.jaxb.jaxbencoder.doUnmarshal(jaxbencoder.java:784)
位于org.apache.cxf.jaxb.jaxbencoder.access$100(jaxbencoder.java:96)
位于org.apache.cxf.jaxb.jaxbencoder$1.run(jaxbencoder.java:812)
位于java.security.AccessController.doPrivileged(本机方法)
位于org.apache.cxf.jaxb.jaxbencoder.unmarshall(jaxbencoder.java:810)
…还有20个
由以下原因引起:com.ctc.wstx.exc.WstxEOFException:意外的EOF;需要元素的关闭标记
在[行,列{未知源}]:[3336,6]
位于com.ctc.wstx.sr.StreamScanner.throwunnexpectedeof(StreamScanner.java:677)
位于com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedof(BasicStreamReader.java:5466)
位于com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2685)
位于com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1050)
位于com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:192)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
…还有26个
线程“main”javax.xml.ws.soap.SOAPFaultException中的异常:解组错误:意外的EOF;应为元素指定一个关闭标记
在[行,列{未知源}]:[3336,6]
位于org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
在$Proxy24.catalogProductList(未知)