Web サービスの記述に関しては、Java と NetBeans に問題があるようです。私は数日間検索しましたが、運が悪く、私と同じ問題を抱えている人からの返信がありませんでした。
複合型 (LoginReply) を返す Web サービスを作成しましたが、その複合型には別の複合型 (AppInfo) の配列が含まれています。
ただし、これから WSDL を生成すると、XSD の複合型定義が空白になり、情報を手動で追加すると、データが Web サービスに正常に渡された場合でも、Web サービスは null を返します。
<xs:complexType name="appInfo">
<xs:sequence/>
</xs:complexType>
LoginReply: http://pastebin.com/Umx6ayvi AppInfo: http://pastebin.com/566WnZ4H
誰かが私が間違っていることを指摘できる場合、またはこれが NetBeans のバグである場合、私は Java を初めて使用するので、単に何かを理解していないことを除外することはできませんが、引っ張るつもりです。私の髪はここにあります。
編集:
NetBeans 経由で tomcat にデプロイすると、次のエラーが発生することに気付きました:
WARNING: duplicate class definition bug occured? Please report this : uk/co/example/ComplexTypes/LoginReply$JaxbAccessorM_getApplications_setApplications_[Luk_co_example_ComplexTypes_AppInfo;
java.lang.ClassFormatError: Illegal class name "uk/co/example/ComplexTypes/LoginReply$JaxbAccessorM_getApplications_setApplications_[Luk_co_example_ComplexTypes_AppInfo;" in class file uk/co/example/ComplexTypes/LoginReply$JaxbAccessorM_getApplications_setApplications_[Luk_co_example_ComplexTypes_AppInfo;
co_uk_example の前のランダムな L に注目してください。私の調査によると、これは修正が必要な古いバグであり、この問題は 1 年以上報告されていないため、どこに行けばよいかわかりません。
別の編集:
appInfo のリストを取得してクライアントに返すだけの新しい Web メソッドをサービスに追加しました。これは、AppInfo 内でのシーケンスの生成を拒否する NetBeans と同じように失敗します。クラスを宣言するために何かが欠けていると確信していますが、何も欠けていないことを確認するために何度もチェックしました。