我已经使用 wsdl2java 生成了 java 类文件并使用了 xmlbeans 数据绑定(bind)。由于存在大量错误,无法编译生成的文件,例如:
error: cannot find symbol [javac] return wrappedType.get().xgetPolicyGroup();
error: cannot find symbol [javac] return wrappedType.get().xgetPolicyPresharedKey();
以下是与第一个错误匹配的生成代码的示例:
private com.sample.webservice.PolicyGroupType getPolicyGroup(com.sample.webservice.PolicyGroupDTODocument wrappedType)
{
return wrappedType.get().xgetPolicyGroup();
}
PolicyGroupDTODocument 定义如下:
public interface PolicyGroupDTODocument extends org.apache.xmlbeans.XmlObject
和实现为
public class PolicyGroupDTODocumentImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements com.sample.webservice.PolicyGroupDTODocument
我认为 get 和 xget 方法在某种程度上是从 XmlObject 继承的。生成的代码或生成过程有什么问题?
最佳答案
这很奇怪......要回答您的问题,请提供以下详细信息:
运行 wsdl2java 时提供了哪些命令选项。您可以在 this link. 中找到所有选项
当您运行 Wsdl2Java 时,它会打印如下消息:Using Axis2_home:..... 和 using Java_HOME.....您能否提供这些值。
我假设您将所有源代码文件放在一个目录中。那你什么时候遇到编译问题呢?您是否尝试在命令行上使用 javac 或使用 Eclipse(如 IDE)导入所有文件并编译它,或者您是否尝试从中创建一个 jar?
确保您使用与上面步骤 2 中使用的相同的 JDK,并使用与步骤 2 中相同的轴 jar。确保您设置的类路径正确。您能提供您正在设置的类路径的值吗?很可能与类路径问题有关。
更新#1
尝试以下步骤: 1. 尝试在不带 -b 选项的情况下运行 wsdl2java 并查看是否出现错误。
2. 由于您的 java 包是 com.sample.webservice,因此您必须使用命令 javac -d 从 com 文件夹的父目录进行编译。 -g com/sample/webservice/*.java
请注意 -d 选项被传递,以便 javac 编译器强制构建包结构。 -g 选项将为您提供详细的调试输出。
关于java - wsdl2java xmlbeans 数据绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211269/