SOAP を介して Web サービスとの間で Java オブジェクトを送受信すると、データが失われるという問題があります。「会社」と呼ばれる別のクラスのデータメンバーを持つ「ユーザー」と呼ばれるクラスがあります。どちらも、XML をバインドするための Java アノテーションを使用して複雑な型として SOAP に定義されます。何らかの理由で、Web サービスとの間で User オブジェクトを送信しようとすると、会社のメンバーのデータが失われ、メンバーが null 値として表示されます。NetBeans デバッガーを使用して、企業オブジェクトが送信前に取り込まれていることを確認し、NetBeans WS テスターを使用して、SOAP がオブジェクトを適切にフォーマットしていることを確認しました。したがって、Java の XML/SOAP から Java への変換に問題があるようです。
SOAP 応答は次のとおりです。
Method returned
com.lingosys.attask.ws.User : "com.lingosys.attask.ws.User@6f863b" SOAP リクエスト
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org
/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getUser xmlns:ns2="http://ws.attask.lingosys.com/" xmlns:ns3="http://ws.fault.lingosys.com">
<UserID>85967</UserID>
</ns2:getUser>
</S:Body>
</S:Envelope>
SOAP Response
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getUserResponse xmlns:ns2="http://ws.attask.lingosys.com/" xmlns:ns3="http://ws.fault.lingosys.com">
<return>
<id>85967</id>
<name>Mohamed Abdullahi, Ph.D.</name>
<address>P.O. Box 56046</address>
<address2>407 Laurier Ave. W.</address2>
<adminNotes/>
<agreements xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<altPhone1/>
<altPhone2/>
<certifications/>
<city>Ottawa</city>
<company>
<id>7029</id>
<name>Mohamed Abdullahi, Ph.D.</name>
<addPMSurchargeforDocTrans>true</addPMSurchargeforDocTrans>
<checkKnowledgeMgt>false</checkKnowledgeMgt>
<clientID>0</clientID>
<docTransPricingScheme>LLS Pricing</docTransPricingScheme>
<greatPlainsID/>
<guid>c71d4c279af611e287980019d15adc73</guid>
<legalEntity>Lingo Systems</legalEntity>
<passTradosLeveraging>false</passTradosLeveraging>
<paymentTerms>0</paymentTerms>
<usLinguistsRequired>false</usLinguistsRequired>
<userDataID/>
</company>
<copyedit>0.0</copyedit>
<country/>
<email>annie@goodie.com</email>
<email2>mdiriye@hotmail.com</email2>
<fax/>
<firstName>Mohamed</firstName>
<helpFuzzy>0.0</helpFuzzy>
<helpNew>0.0</helpNew>
<helpReps>0.0</helpReps>
<hourly>0.0</hourly>
<lastName>Abdullahi, Ph.D.</lastName>
<lingoNetUser>false</lingoNetUser>
<linguistSource>Coto DB</linguistSource>
<llsClientID/>
<medicalFuzzy>0.0</medicalFuzzy>
<medicalNew>0.0</medicalNew>
<medicalReps>0.0</medicalReps>
<memberships xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<min>0.0</min>
<mktFuzzy>0.0</mktFuzzy>
<mktNew>0.0</mktNew>
<mktReps>0.0</mktReps>
<os/>
<pager/>
<phone/>
<pmComments/>
<postalCode>KIR 7Z0</postalCode>
<qualified xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<roles>Linguist Account</roles>
<rushFuzzy>0.0</rushFuzzy>
<rushNew>0.0</rushNew>
<rushReps>0.0</rushReps>
<sourceLanguage>English (US)</sourceLanguage>
<specialties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<state>ON</state>
<targetLanguage/>
<taxID/>
<techFuzzy>0.0</techFuzzy>
<techNew>0.0</techNew>
<techReps>0.0</techReps>
<timeZone>US/Eastern</timeZone>
<title/>
<tools xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<trFuzzy>0.0</trFuzzy>
<trNew>0.0</trNew>
<trReps>0.0</trReps>
<translatorSince/>
<trceFuzzy>0.0</trceFuzzy>
<trceNew>0.0</trceNew>
<trceReps>0.0</trceReps>
<uiFuzzy>0.0</uiFuzzy>
<uiNew>0.0</uiNew>
<uiReps>0.0</uiReps>
<userName>mdiriye@hotmail.com</userName>
</return>
</ns2:getUserResponse>
</S:Body>
</S:Envelope>
このサイトの投稿に含めることができるよりも多くのコードと共に、この問題を Java Ranch に投稿しました: http://www.coderanch.com/t/622496/Web-Services/java/losing-data-SOAP-Web-Service #2845835
あなたが見たいかもしれないsoemコードまたは文書があるかどうか私に知らせてください. 面白いことに、これらの Web サービスは非常によく似たバージョンであり、クライアントは別の環境で動作していました。フォーム NB6.9 Glassfish v2、JDK 1.6 から NB7.3.1、GF4、JDK 1.7 にアップグレード中です。Company クラスと User クラスにいくつかのコード変更が加えられましたが、SOAP と関係があると思われるものは何もありません。
どんな助けでも感謝します