Java 为什么wsimport会生成“导入”;“不完整”;上课?
首先,我会给你一个形势概述。我不会列出我项目的每一个类,只列出我认为相关的类。如果你觉得缺少什么,请告诉我,我会补充 2个项目:Java 为什么wsimport会生成“导入”;“不完整”;上课?,java,web-services,wsdl,jax-ws,wsimport,Java,Web Services,Wsdl,Jax Ws,Wsimport,首先,我会给你一个形势概述。我不会列出我项目的每一个类,只列出我认为相关的类。如果你觉得缺少什么,请告诉我,我会补充 2个项目: WS 客户端 5类(属于WS): Main.java User.java ModuleMain ModuleSecondary.java ModuleEmergency.java 用户类具有以下字段: 字符串用户名 字符串密码 ModuleMain ModuleSecondary secondary 模块紧急事件 每个“模块”类都有3个布尔字段,它们是访问模块的权限。
WS
客户端
5类(属于WS):
Main.java
User.java
ModuleMain
ModuleSecondary.java
ModuleEmergency.java
用户类具有以下字段:
字符串用户名
字符串密码
ModuleMain
ModuleSecondary secondary
模块紧急事件
每个“模块”类都有3个布尔字段,它们是访问模块的权限。它们是:
boolean canMonitor
boolean-canAdd
boolean可以删除
这是WS类。此类是发布端点的类:
在运行WebService之后,我使用wsimport工具将类放入客户机
项目中
wsimport-verbose-Xdebug-keep-pws.apihttps://localhost:443/ws?wsdl
这些是我得到的一些课程:
如您所见,password字段被省略。但这并不是问题所在,问题在于生成的模块
类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "main")
public class ModuleMain {
}
就这样。其他模块
类是相同的。他们没有任何方法,因此我无法访问权限字段。我不知道问题出在哪里,可能是WSDL,但我不知道如何解决这个问题
非常感谢您的帮助。很抱歉出现语法错误。问题可能是两种情况之一——(A)从Java first web服务生成的WSDL没有捕获所有所需字段,或者(B)后续的WSDL到Java wsimport过程没有正确读取WSDL。您是否通过查看WSDL确定了它是哪一个?如果是A,您应该向我们展示生成的WSDL,并询问为什么缺少重要字段(而不是向我们展示随后由WSDL生成的工件——这不再重要,因为问题不存在了),如果是B,向我们展示WSDL,忘记您是如何生成它的,然后询问为什么在wsimport过程中缺少字段。通过不提供WSDL,我们无法轻松确定问题是在(A)还是(B)中。我的博客上的注释可能对您有所帮助。它现在正在正确生成。事实证明,这是一个问题,与getter和setter。。。我的意思是,我有一个方法叫做
canRemove()
。只需将其重命名为isCanRemove()
甚至getCanRemove()
就可以了。我觉得奇怪的是,我有一个getter和一个setter用于user类中的password字段。但是,setter还有其他操作,它不是一个简单的this.password=value
。我会读这些文章,只是觉得值得一提。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "user", propOrder = {
"moduleMain",
"moduleSecondary",
"moduleEmergency",
"sessionKey",
"username"
})
public class User {
protected ModuleMain main;
protected ModuleSecondary secondary;
protected ModuleEmergency emergency;
protected String username;
//...getters and setters for those fields...//
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "main")
public class ModuleMain {
}