JAX-WSを使用してWebサービスを構築しています。私は、@WebParam
の注釈@XmlElement(required=true)
がいくつかの@WebService
クラスで動作するという奇妙な問題がありますが、他のクラスでは動作しません。@WebParamの@XmlElement(必須= true)は動作しません
私は2つの@WebService
クラスに非常に似たコードを持っています。この問題の原因は何ですか?パラメータタイプまたはエンティティクラス?
編集:最初のWebメソッド用に生成されたスキーマがある
@WebService(name = "ClubMemberPortType", serviceName = "ClubMemberService", portName = "ClubMemberSoapPort", targetNamespace = "http://club.com/api/ws")
public class ClubMemberWS {
@WebMethod(operationName = "findClubMembersByClubId", action = "urn:findClubMembersByClubId")
@WebResult(name = "club_membership")
public List<ClubMembership> findClubMembershipsByClubId(@XmlElement(required=true)
@WebParam(name = "club_id") String clubId,
@WebParam(name = "status") StatusEnum status){
...
}}
と
@WebService(name = "ClubPortType", serviceName = "ClubService", portName = "ClubSoapPort", targetNamespace = "http://club.com/api/ws")
public class ClubWS {
@WebMethod(operationName = "findClubByClubId", action = "urn:findClubByClubId")
@WebResult(name = "club")
public Club findClubByClubId(@XmlElement(required=true)
@WebParam(name = "club_id") String clubId) {
...
}}
:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://club.com/api/ws">
<soapenv:Header/>
<soapenv:Body>
<ws:findClubMembersByClubId>
<club_id>?</club_id>
<!--Optional:-->
<status>?</status>
</ws:findClubMembersByClubId>
</soapenv:Body>
</soapenv:Envelope>
サンプルコードを追加します。私は2つのWebサービスを持っています 第二のウェブメソッドの
生成されたスキーマは次のとおりです。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://club.com/api/ws">
<soapenv:Header/>
<soapenv:Body>
<ws:findClubByClubId>
<!--Optional:-->
<club_id>?</club_id>
</ws:findClubByClubId>
</soapenv:Body>
</soapenv:Envelope>
だから、最初の1が正常に動作し、二番目は動作しません。どのように可能ですか? :(
2つのケースのコードサンプルはありますか?あなたが直面している実際の問題(例:例外、行動のより良い説明など) –
私はコードを追加しました。 – Shichao
私は@XmlElement GET ERRORが '注釈@XmlElementがこのlocation'例えば、'パブリックブールvalidateRegistration(@XmlElement(=真必須)@WebParam文字列devicedId'のために禁止されて追加すると、エラー – Tomer