Java 为什么wsimport会生成“导入”;“不完整”;上课?

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个布尔字段,它们是访问模块的权限。

首先,我会给你一个形势概述。我不会列出我项目的每一个类,只列出我认为相关的类。如果你觉得缺少什么,请告诉我,我会补充

2个项目:

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 {


}