1

我用 wsdl2java 生成了 java-class 文件并使用了 xmlbeans 数据绑定。由于许多错误,例如无法编译生成的文件:

错误:找不到符号 [javac] 返回 WrappedType.get().xgetPolicyGroup();

错误:找不到符号 [javac] 返回 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 继承的。生成的代码或生成过程有什么问题?

4

2 回答 2

0

尝试使用不同版本的 Axis2。具有讽刺意味的是,我发现有时代码可以在使用不同版本生成后进行编译。运行并编译后,请确保您使用相同版本的 Axis 来执行代码,否则您将得到无数其他错误。

我得到了不同的结果,在 1.4、1.5.6 和 1.6.0 之间切换。

于 2012-09-06T13:41:56.853 回答
0

很奇怪...要回答您的问题,请提供以下详细信息:

  1. 您在运行 wsdl2java 时提供了哪些命令选项。您可以在此链接中找到所有选项。

  2. 当您运行 Wsdl2Java 时,它会打印如下消息:Using Axis2_home:..... and using Java_HOME.....您能提供这些值吗?

  3. 我假设您将所有源代码文件放在一个目录中。那么你什么时候遇到编译问题。您是想在命令行上使用 javac 还是使用 Eclipse 之类的 IDE 来导入所有文件并编译它,还是想用它创建一个 jar?

    确保您使用与上述步骤 2 中相同的 JDK,并使用与步骤 2 中相同的轴 jar。确保您设置的类路径是正确的。你能提供你正在设置的类路径的值吗?很可能与类路径问题有关。

update#1 尝试以下步骤: 1. 尝试在没有 -b 选项的情况下运行 wsdl2java 并查看是否出现错误。2. 由于你的 java 包是 com.sample.webservice 所以,你必须使用命令从 com 文件夹的父目录编译: javac -d 。-g com/sample/webservice/*.java
请注意 -d 选项被传递,以便 javac 编译器强制构建包结构。和 -g 选项将为您提供详细的调试输出。

于 2012-09-06T18:47:39.763 回答