JAXB 외부 바인딩 사용자 정의를 사용한 오류
문제
WSDLC 도구 (Weblogic 10.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에서 : "패키지가 존재하지 않습니다". ClassPath = 내가 포함하는 모든 것 <pathelement location=
Eclipse 플러그인의 60 줄. 문제는 WSDLC가 시작하는 Javac 명령에 있습니다. 이 명령의 클래스 경로는 정확하지만 (하드 코딩 된 경로, 예를 들어) "패키지 ... 존재하지 않습니다".
개미에서 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>
해결책 3
나는 수업을 제대로 용기하지 않았다. 나는 Winzip을 사용하여 항아리에 일부 클래스를 신속하게 추가 할 수 있다고 생각했지만 Winzip의 '경로'는 Java의 패키지 이름과 같지 않았다. 시간이 걸렸지 만 나는 클래스 경로에 대해 뭔가를 배웠습니다.
다른 팁
my.SuperClass
이미 존재해야합니다. wsdlc
당신을 위해 그것을 생성하지 않을 것입니다. 생성 된 코드를 컴파일하는 데있어 (여기서 실패했다고 가정하는 곳) Javac이 찾을 수 없기 때문입니다. my.SuperClass
클래스 경로에서.
발췌문을 제공하십시오 build.xml
사용 방법을 보여줍니다 wsdlc
.
에 따르면 선적 서류 비치:
Weblogic 특정 WSDLC 속성 외에도 다음 표준 Javac 속성을 정의 할 수도 있습니다. 각 속성에 대한 추가 정보는 ANT 문서를 참조하십시오.
bootclasspath
bootClasspathRef
classpath
- [...]
WSDLC 개미 작업과 함께 다음 표준 개미 하위 요소를 사용할 수도 있습니다.
<FileSet>
<SourcePath>
<Classpath>
포함 할 클래스 경로를 지정 했습니까? my.SuperClass
?