在编写 Web 服务时,我似乎遇到了 Java 和 NetBeans 的问题。我已经搜索了几天没有运气,找到与我相同问题的人零回复。
我创建了一个返回复杂类型 (LoginReply) 的 Web 服务,该复杂类型包含另一个复杂类型 (AppInfo) 的数组
但是,当我由此生成 WSDL 时,XSD 中的复杂类型定义为空白,手动添加信息仍然会使 Web 服务返回 null,即使数据已成功传递给 Web 服务。
<xs:complexType name="appInfo">
<xs:sequence/>
</xs:complexType>
登录回复:http: //pastebin.com/Umx6ayvi 应用信息: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。我的研究表明这是一个应该修复的旧错误,并且一年多来没有其他人报告过这个问题,不知道从哪里开始。
另一个编辑:
刚刚在服务上添加了一个新的 web 方法,它只是获取 appInfo 列表并将其返回给客户端。这仍然以同样的方式失败,NetBeans 拒绝在 AppInfo 中生成序列。我确定我错过了声明课程的内容,但我已经检查了无数次以确保我没有遗漏任何内容。