2011-04-29 1 views
0

wsgen 도구를 사용하여 wsdl 생성을 시도하고 있습니다. jaxb-api.jar 및 jaxws-api.jar 파일을 보증했습니다.wsgen 도구에서 wsdl 생성 중 오류가 발생했습니다.

나는이 TestTO 라이브러리가 웹 서비스 프로젝트에 포함되어

public class TestingTo implements Serializable{ 
    public String name; 
} 

AS TestingTo 클래스가 라이브러리 TestTo 있습니다.

main: 
    [exec] Note:  ap round: 1 
    [exec] Problem encountered during annotation processing; 
    [exec] see stacktrace below for more information. 
    [exec] java.lang.NullPointerException 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.isLegalType(WebServiceVisitor.java:794) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.isLegalMethod(WebServiceVisitor.java:642) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.methodsAreLegal(WebServiceVisitor.java:611) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.isLegalImplementation(WebServiceVisitor.java:529) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.shouldProcessWebService(WebServiceVisitor.java:332) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceVisit 
or.visitClassDeclaration(WebServiceVisitor.java:123) 
    [exec]  at com.sun.tools.apt.mirror.declaration.ClassDeclarationImpl.acc 
ept(ClassDeclarationImpl.java:95) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceAP.bu 
ildModel(WebServiceAP.java:329) 
    [exec]  at com.sun.tools.ws.processor.modeler.annotation.WebServiceAP.pr 
ocess(WebServiceAP.java:270) 
    [exec]  at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationPr 
ocessor.process(AnnotationProcessors.java:60) 
    [exec]  at com.sun.tools.apt.comp.Apt.main(Apt.java:454) 
    [exec]  at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java 
:258) 
    [exec]  at com.sun.tools.apt.main.Main.compile(Main.java:1102) 
    [exec]  at com.sun.tools.apt.main.Main.compile(Main.java:964) 
    [exec]  at com.sun.tools.apt.Main.processing(Main.java:95) 
    [exec]  at com.sun.tools.apt.Main.process(Main.java:85) 
    [exec]  at com.sun.tools.apt.Main.process(Main.java:67) 
    [exec]  at com.sun.tools.ws.wscompile.WsgenTool.buildModel(WsgenTool.jav 
a:219) 
    [exec]  at com.sun.tools.ws.wscompile.WsgenTool.run(WsgenTool.java:123) 
    [exec]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [exec]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces 
sorImpl.java:39) 
    [exec]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet 
hodAccessorImpl.java:25) 
    [exec]  at java.lang.reflect.Method.invoke(Method.java:597) 
    [exec]  at com.sun.tools.ws.Invoker.invoke(Invoker.java:131) 
    [exec]  at com.sun.tools.ws.WsGen.main(WsGen.java:52) 
    [exec] error: compilation failed, errors should have been reported 
    [exec] Result: 1 
이제

내가

@WebService() 
@XmlSeeAlso({ 
    TestingTo.class 
}) 
public class IcfInfra { 
    ... 
} 

으로 내 웹 서비스를 수정 -

내 WebService에 내가 wsgen의를 위해 Ant 스크립트를 실행하면

@WebService() 
public class IcfInfra { 

    @WebMethod(operationName = "printTest") 
    public TestingTo printTest(@WebParam(name = "string") String string) 
    { 
     TestingTo to = new TestingTo(); 
     to.name = string; 
     System.out.println(string); 
     return to; 
    } 
} 

below- 나는 다음과 같은 오류가 같다 개미 스크립트를 실행하면 오류가 발생합니다. -

main: 
    [exec] Exception in thread "main" java.lang.ArrayStoreException: sun.reflec 
t.annotation.TypeNotPresentExceptionProxy 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseClassArray(Annot 
ationParser.java:653) 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseArray(Annotation 
Parser.java:460) 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseMemberValue(Anno 
tationParser.java:286) 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseAnnotation(Annot 
ationParser.java:222) 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Ann 
otationParser.java:69) 
    [exec]  at sun.reflect.annotation.AnnotationParser.parseAnnotations(Anno 
tationParser.java:52) 
    [exec]  at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) 
    [exec]  at java.lang.Class.getAnnotation(Class.java:3029) 
    [exec]  at com.sun.tools.ws.wscompile.WsgenOptions.validateEndpointClass 
(WsgenOptions.java:244) 
    [exec]  at com.sun.tools.ws.wscompile.WsgenOptions.validate(WsgenOptions 
.java:226) 
    [exec]  at com.sun.tools.ws.wscompile.WsgenTool.run(WsgenTool.java:122) 
    [exec]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [exec]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces 
sorImpl.java:39) 
    [exec]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet 
hodAccessorImpl.java:25) 
    [exec]  at java.lang.reflect.Method.invoke(Method.java:597) 
    [exec]  at com.sun.tools.ws.Invoker.invoke(Invoker.java:131) 
    [exec]  at com.sun.tools.ws.WsGen.main(WsGen.java:52) 

감사 누군가 wsdl을 성공적으로 생성하기 위해 수행해야 할 작업을 알릴 수있는 경우.

감사합니다, Adish

답변

0

나는 (다운로드 할 수있는 샘플 프로젝트가) 끝 부분에있는 링크를 참조, SOAP 구현으로 CXF를 사용하여 프로젝트 구성 받는다는 데는 보통. 하지만 내 생각 엔 (javadoc 참조)이처럼 TestingTo 클래스의 접근 유형을 설정해야한다는 것입니다 : 빠른 회신

@XmlAccessorType(XmlAccessType.FIELD) 
public class TestingTo implements Serializable{ 
    public String name; 
} 

CXF: Defining Contract first webservices with wsdl generation from java

+0

감사 모리츠. XmlAccessorType 주석을 사용했지만 동일한 오류가 발생했습니다. 귀하의 게시물에있는 CXF 링크를 살펴 보겠습니다. – Adish