2010-02-21 1 views
1

저는 Java와 webservices에 비교적 새로운 것이므로 분명해야합니다. 아마 classpath와 함께 뭔가. 내 클래스 파일은 현재 디렉토리에 상대적인 'src/ibmwebservicetutorial/service /'디렉토리 아래 있습니다. 어떤 생각인지 내가 뭘 잘못 했니?wsgen을 사용하여 JAX-WS 아티팩트를 생성 할 때 "java.lang.NoClassDefFoundError : IllegalName"오류가 발생합니다.

wsgen -classpath . src/ibmwebservicetutorial/service/OrderProcessService -wsdl 

Exception in thread "main" java.lang.NoClassDefFoundError: IllegalName: src/ibmwebservicetutorial/service/OrderProcessService 
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:477) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:56) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
at com.sun.tools.internal.ws.wscompile.WsgenOptions.getClass(WsgenOptions.java:276) 
at com.sun.tools.internal.ws.wscompile.WsgenOptions.validateEndpointClass(WsgenOptions.java:212) 
at com.sun.tools.internal.ws.wscompile.WsgenOptions.validate(WsgenOptions.java:203) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:105) 
at com.sun.tools.internal.ws.WsGen.main(WsGen.java:41) 

답변

1

오류는 합법적 인 클래스 이름을 원한다는 것을 알려줍니다. 소스 경로를 지정했습니다. 정규화 된 클래스 이름 (예 : "x.y.z.Foo")처럼 보이는 것이 필요합니다.

체크 아웃 docs하고,이처럼 실행 해보십시오 :

wsgen -wsdl -classpath . service.OrderProcessService

내가하지 된 .java, wsgen의이 .class 파일에서 작동합니다 생각합니다. 이 파일을 실행하기 전에 소스 파일을 컴파일했는지 확인하십시오.

+0

그래를 실행하는 데 나는 java 파일과 같은 디렉토리에있는 파일과 클래스 파일을 컴파일했다. – NewbieToJava

+0

이제 나는 그것이 올바른 길을 제시하고 있음을 확신합니다. 잘못된 경로를 지정하면 다음과 같은 메시지가 표시됩니다. 클래스가 없습니다. "service/OrderProcessService" 사용법 : WSGEN [옵션] NewbieToJava

+0

Ooooppss! 나는 명백한 것을 놓쳤다. 나는/사용하고 있었다. 클래스 파일 경로에. – NewbieToJava

0

이동 단말기에서/클래스를 대상으로하고

wsgen -verbose -keep -cp . com.your.package.name.OrderProcessServiceImpl 
관련 문제