0

Zend (php のフレームワーク) で作成された wsdl webservice を呼び出す一例を作成しています。ksoap api(jar ファイル) を使用していますが、このエラーが発生しました。

org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <definitions name='Ccc_Core_Model_Api_Server' targetNamespace='http://gsmadmin.com/zendtest/api'>@2:385 in java.io.InputStreamReader@40539078)

このエラーに関連する stackoverflow のすべての質問を読みましたが、このエラーを解決できません。

このエラーの本当の解決策は何ですか?

私を助けてください。

私のwsdl xmlファイルは次のとおりです。

<?xml version="1.0"?>              
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://gsmadmin.com/zendtest/api" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Ccc_Core_Model_Api_Server" targetNamespace="http://gsmadmin.com/zendtest/api"> 
<types>             
<xsd:schema targetNamespace="http://gsmadmin.com/zendtest/api"/>  
</types>    
<portType name="Ccc_Core_Model_Api_ServerPort">  
<operation name="addition">  
<documentation> This method is used for addition of two numbers</documentation>
<input message="tns:additionIn"/>
<output message="tns:additionOut"/>
</operation> 
<operation name="substraction">   
<documentation> This method is used for substraction of two numbers</documentation> 
<input message="tns:substractionIn"/>
<output message="tns:substractionOut"/>  
</operation>    
<operation name="multiple">  
<documentation>This method is used for multiple of two numbers</documentation>   
<input message="tns:multipleIn"/> 
<output message="tns:multipleOut"/>  
</operation> 
<operation name="division">   
<documentation>This method is used for division of two numbers</documentation>
<input message="tns:divisionIn"/> 
<output message="tns:divisionOut"/> 
</operation>   
</portType>  
<binding name="Ccc_Core_Model_Api_ServerBinding" type="tns:Ccc_Core_Model_Api_ServerPort">  
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="addition">  
<soap:operation soapAction="http://gsmadmin.com/zendtest/api#addition"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/> 
</input> 
<output> 
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>  
</output>  
</operation>   
<operation name="substraction">  
<soap:operation soapAction="http://gsmadmin.com/zendtest/api#substraction"/> 
<input>   
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>
</input>  
<output>   
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>  
</output>
</operation>  
<operation name="multiple"> 
<soap:operation soapAction="http://gsmadmin.com/zendtest/api#multiple"/>  
<input>    
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>
</input>   
<output>  
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>
</output>
</operation>   
<operation name="division">
<soap:operation soapAction="http://gsmadmin.com/zendtest/api#division"/>    
<input>  
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/>   
</input>
<output>   
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://gsmadmin.com/zendtest/api"/> 
</output>  
</operation>  
</binding>  
<service name="Ccc_Core_Model_Api_ServerService">  
<port name="Ccc_Core_Model_Api_ServerPort" binding="tns:Ccc_Core_Model_Api_ServerBinding">  
<soap:address location="http://gsmadmin.com/zendtest/api"/>  
</port>  
</service>   
<message name="additionIn">   
<part name="param1" type="xsd:int"/>   
<part name="param2" type="xsd:int"/>  
</message> 
<message name="additionOut">  
<part name="return" type="xsd:float"/>  
</message>   
<message name="substractionIn"> 
<part name="param1" type="xsd:int"/> 
<part name="param2" type="xsd:int"/>
</message>    
<message name="substractionOut">   
<part name="return" type="xsd:float"/>     
</message>     
<message name="multipleIn">     
<part name="param1" type="xsd:int"/>      
<part name="param2" type="xsd:int"/>
</message> 
<message name="multipleOut">   
<part name="return" type="xsd:float"/>    
</message>   
<message name="divisionIn">    
<part name="param1" type="xsd:float"/>  
<part name="param2" type="xsd:float"/> 
</message>    
<message name="divisionOut"> 
<part name="return" type="xsd:float"/>  
</message>
</definitions>  

例外スタック トレース:

06-14 15:45:49.527: D/AndroidRuntime(2055): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
06-14 15:45:49.527: D/AndroidRuntime(2055): CheckJNI is ON
06-14 15:45:50.587: D/AndroidRuntime(2055): Calling main entry com.android.commands.pm.Pm
06-14 15:45:50.637: D/AndroidRuntime(2055): Shutting down VM
06-14 15:45:50.657: D/dalvikvm(2055): GC_CONCURRENT freed 101K, 71% free 297K/1024K, external 0K/0K, paused 1ms+1ms
06-14 15:45:50.657: I/AndroidRuntime(2055): NOTE: attach of thread 'Binder Thread #3' failed
06-14 15:45:50.669: D/jdwp(2055): Got wake-up signal, bailing out of select
06-14 15:45:50.677: D/dalvikvm(2055): Debugger has detached; object registry had 1 entries
06-14 15:45:51.247: D/AndroidRuntime(2065): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
06-14 15:45:51.247: D/AndroidRuntime(2065): CheckJNI is ON
06-14 15:45:52.147: D/AndroidRuntime(2065): Calling main entry com.android.commands.am.Am
06-14 15:45:52.197: I/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.phpwebservice/.PhpwebservicedemoActivity } from pid 2065
06-14 15:45:52.267: D/AndroidRuntime(2065): Shutting down VM
06-14 15:45:52.317: D/dalvikvm(2065): GC_CONCURRENT freed 103K, 69% free 319K/1024K, external 0K/0K, paused 2ms+1ms
06-14 15:45:52.389: V/Adapter(1868): URL = http://gsmadmin.com/zendtest/api?wsdl
06-14 15:45:52.389: D/jdwp(2065): Got wake-up signal, bailing out of select
06-14 15:45:52.389: D/dalvikvm(2065): Debugger has detached; object registry had 1 entries
06-14 15:45:52.447: V/Adapter(1868): NAMESPACE = http://gsmadmin.com/zendtest/api
06-14 15:45:52.447: V/Adapter(1868): METHOD_NAME = addition
06-14 15:45:52.447: V/Adapter(1868): SOAP_ACTION = http://gsmadmin.com/zendtest/api#addition
06-14 15:45:52.447: V/Adapter(1868): request = addition{param1=10; param2=2; }
06-14 15:45:52.487: V/Adapter(1868): param1 = 10  param2 = 2
06-14 15:45:53.737: W/System.err(1868): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <definitions name='Ccc_Core_Model_Api_Server' targetNamespace='http://gsmadmin.com/zendtest/api'>@2:385 in java.io.InputStreamReader@40541998) 
06-14 15:45:53.757: W/System.err(1868):     at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273)
06-14 15:45:53.757: W/System.err(1868):     at org.kxml2.io.KXmlParser.require(KXmlParser.java:1424)
06-14 15:45:53.757: W/System.err(1868):     at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
06-14 15:45:53.766: W/System.err(1868):     at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
06-14 15:45:53.766: W/System.err(1868):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
06-14 15:45:53.766: W/System.err(1868):     at com.phpwebservice.Adapter.addition(Adapter.java:59)
06-14 15:45:53.777: W/System.err(1868):     at com.phpwebservice.PhpwebservicedemoActivity.onCreate(PhpwebservicedemoActivity.java:53)
06-14 15:45:53.777: W/System.err(1868):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-14 15:45:53.787: W/System.err(1868):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-14 15:45:53.787: W/System.err(1868):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-14 15:45:53.787: W/System.err(1868):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-14 15:45:53.787: W/System.err(1868):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-14 15:45:53.809: W/System.err(1868):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-14 15:45:53.809: W/System.err(1868):     at android.os.Looper.loop(Looper.java:123)
06-14 15:45:53.809: W/System.err(1868):     at android.app.ActivityThread.main(ActivityThread.java:3683)
06-14 15:45:53.809: W/System.err(1868):     at java.lang.reflect.Method.invokeNative(Native Method)
06-14 15:45:53.817: W/System.err(1868):     at java.lang.reflect.Method.invoke(Method.java:507)
06-14 15:45:53.817: W/System.err(1868):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-14 15:45:53.817: W/System.err(1868):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-14 15:45:53.817: W/System.err(1868):     at dalvik.system.NativeStart.main(Native Method)
06-14 15:45:53.817: V/log_tag(1868): total addition = 0.0
06-14 15:45:54.069: I/ActivityManager(61): Displayed com.phpwebservice/.PhpwebservicedemoActivity: +1s835ms
06-14 15:45:59.297: D/dalvikvm(126): GC_EXPLICIT freed 4K, 50% free 3003K/5895K, external 5903K/7371K, paused 63ms

前もって感謝します

4

2 に答える 2

0

うわぁ……

最終的に3日間試した後、私は解決策を得ました、

問題は URL にあり、

URLは「http://gsmadmin.com/zendtest/api?wsdl」

今、私はそれを「http://gsmadmin.com/zendtest/api」に変更します

しかし、以前のプロジェクトでは最後に ?wsdl (Javaで作成された - JAX-WS-RI )でURLを使用したため、URLから ?wsdl を削除する必要がある理由がわかりませんが、最近では?wsdl その後、エラーが発生します。

どちらの Web サービスも異なるテクノロジで作成されており、1 つは JAVA で、もう 1 つは zend (php フレームワーク) で作成されているため、構造が異なる場合があります。

でも最後はリラックス……。

ありがとう.......

于 2012-06-15T09:19:29.407 に答える
0

あなたが投稿したものから、開始タグがないと思うxmlにエラーがあります。スタック トレースをさらに投稿すると、何が問題なのかを簡単に確認できる場合があります。

于 2012-06-13T07:43:42.957 に答える