我使用wsdlc工具(WebLogic10.3.1)从wsdl生成类。我有以下外部jaxb绑定定制文件:
<jaxb:bindings
xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
schemaLocation="web/WEB-INF/....xsd"
version="2.1">
<jaxb:bindings node="/xs:schema">
<jaxb:globalBindings>
<xjc:superClass name="my.MySuperClass" />
</jaxb:globalBindings>
</jaxb:bindings>
</jaxb:bindings>编译时的错误消息是:找不到symbol my.MySuperClass。在javac中:"package my my exist“。类路径=我通过<pathelement location=等包含的所有内容,以及来自eclipse插件的60行代码。该问题存在于wsdlc启动的javac命令中。此命令的类路径是正确的(例如,硬编码路径)但是仍然是“包...不存在”。
来自ant的wsdlc的用法如下:
<path id="class.path">
<pathelement path="${java.class.path}" />
<pathelement location="... hard coded path on disk to a jar" />
</path>
<target name="generate-ws-from-wsdl">
<wsdlc failOnError="true"
srcWsdl="${basedir}/web/WEB-INF/ps.wsdl"
destImplDir="${basedir}/src"
destJwsDir="${basedir}/web/WEB-INF/lib"
srcPortName="PsPort"
type="JAXWS">
<binding file="jaxb-bindings.xml" />
<classpath refid="class.path" />
</wsdlc>
</target>发布于 2009-10-23 23:12:08
我没有正确地jar我的类,我想我可以使用WinZip快速添加一些类到jar中,但是WinZip中的‘路径’不等于java中的包名。这花了我一段时间,但我学到了一些关于类路径的知识。
发布于 2009-10-22 16:51:36
my.SuperClass必须已经存在,wsdlc不会为您生成它。当涉及到编译生成的代码时(我认为这是这里失败的地方),这是因为javac在其类路径中找不到my.SuperClass。
发布于 2009-10-22 17:00:58
请提供说明如何使用wsdlc的build.xml摘录。
根据documentation的说法
除了特定于WebLogic的wsdlc属性之外,您还可以定义以下标准
属性;有关每个属性的其他信息,请参阅Ant文档:
bootclasspathbootClasspathRefclasspath还可以将以下标准Ant子元素与wsdlc Ant任务一起使用:
<FileSet><SourcePath><Classpath>您是否指定了包含my.SuperClass的类路径
https://stackoverflow.com/questions/1605825
复制相似问题