2016-09-07 8 views
0

TomcatサーバーにWebサービスがデプロイされていて、そのためのwsdlファイルも生成されています。JAX WSから生成されたwsdlのネームスペースの問題

後で私はwsdlから新しい石鹸プロジェクトを生成し、サーバーに石鹸リクエストを実行しました。

"InputData"と "CCNA"の名前空間接頭辞が間違っているため、ここでの問題はサーバー側であり、xmlのアンマーシャリングに失敗しています。現在はcfaです。

Javaコードによると、入力データのための名前空間は、XSで、CCNAはBIMです。 soap要求を変更すると、unmarshallはサーバー側で問題ありません。

だからどこに問題がありますか? WSDLの生成、またはJAX WSの他の場所? 私は自分の石鹸リクエストを変更すべきではありません。

SOAPリクエスト:サーバー上の入力データに対して

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfa="http://cfa.ni.ctl.com/" xmlns:bim="http://www.qwest.com/XMLSchema/BIM" xmlns:xs="http://www.qwest.com/XMLSchema"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <cfa:getCFACircuit> 
     <!--Optional:--> 
     <CFACircuitRequest> 
      <bim:RequestId>123</bim:RequestId> 
      <bim:WebServiceName>123</bim:WebServiceName> 
      <bim:RequestPurpose>123</bim:RequestPurpose> 
      <bim:AuthorizationInfo> 
       <!--Optional:--> 
       <bim:ApplicationId>123</bim:ApplicationId> 
       <!--Optional:--> 
       <bim:UserId>123</bim:UserId> 
       <!--Optional:--> 
       <bim:Userid>123</bim:Userid> 
       <bim:Password>123</bim:Password> 
      </bim:AuthorizationInfo> 
      <!--Optional:--> 
      <bim:TargetSchemaVersionUsed> 
       <!--Optional:--> 
       <bim:TargetXSDName>123</bim:TargetXSDName> 
       <!--Optional:--> 
       <bim:MajorVersionNumber>123</bim:MajorVersionNumber> 
       <!--Optional:--> 
       <bim:MinorVersionNumber>123</bim:MinorVersionNumber> 
      </bim:TargetSchemaVersionUsed> 
      <!--Optional:--> 
      <bim:TimeOutSecond>123</bim:TimeOutSecond> 
      <!--Optional:--> 
      <bim:SendTimeStamp>123</bim:SendTimeStamp> 
      <cfa:InputData> 
       <cfa:CCNA>123</cfa:CCNA> 
       <xs:CableKey> 
        <!--Optional:--> 
        <xs:LowUnit>123</xs:LowUnit> 
        <!--Optional:--> 
        <xs:HighUnit>123</xs:HighUnit> 
        <!--Optional:--> 
        <xs:CableId>123</xs:CableId> 
        <!--Optional:--> 
        <xs:CableSubPath>123</xs:CableSubPath> 
        <!--Optional:--> 
        <xs:CLLIALocation>123</xs:CLLIALocation> 
        <!--Optional:--> 
        <xs:CLLIZLocation>123</xs:CLLIZLocation> 
       </xs:CableKey> 
      </cfa:InputData> 
     </CFACircuitRequest> 
     </cfa:getCFACircuit> 
    </soapenv:Body> 
</soapenv:Envelope> 

XML注釈は、次のとおりです。

@XmlElement(名前= "入力データ"、名前空間= "http://www.qwest.com/XMLSchema"、必要=真)

+0

私はなぜこの注釈でwsdlのinputDataが対応する名前空間にないのかわかりません...おそらくjaxbバージョンに関連する問題ですか?あなたは新しいものを試すことができますか?申し訳ありませんが、私はここでどのように援助するのか分かりません。私はあなたの問題を解決しないので私はまた私の答えを削除します。 – albciff

+0

ok ..thanks ..新しいjaxbバージョンを試してみてください – Ajay

答えて

0

XMLリクエストが間違っていると思います。 XML Schemaに対するリクエストを最初に検証してみてください。

どの名前空間接頭辞を使用しても問題はありませんが、XML要素が適切な名前空間に一致することを確認する必要があります。

+0

xmlリクエストが正しいです。 2つのタグを太字で表示しようとしました。 – Ajay

+0

Ajay

+0

これを指摘していますか? – Ajay

0

アジャイ、 はあなたの注釈がある:

@XmlElement(名前= "入力データ"、名前空間= "http://www.qwest.com/XMLSchema"、=真必須)

しかし、あなたのXMLリクエストで要素入力データは、名前空間に属しています"http://cfa.ni.ctl.com/"。

注釈を修正する必要があります。

+0

しかし、そのコードはスキーマファイルから自動生成されています。私のサーバーパッケージにjarファイルが含まれています。どのように私のコード内の名前空間をオーバーライドするのですか? – Ajay

関連する問題