2010-02-21 22 views
1

我对java和webservices都比较陌生,所以它必须是明显的东西。最可能的是classpath。我的类文件位于相对于当前目录的目录“src/ibmwebservicetutorial/service /”下。任何想法我做错了什么?“java.lang.NoClassDefFoundError:IllegalName”使用wsgen生成JAX-WS构件时出错

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

我觉得WSGEN适用于.class文件,没有的.java。确保你已经编译你的源文件,然后再运行它。

+0

是啊我做编译文件和类文件在同一目录.java文件。 – NewbieToJava 2010-02-21 17:57:44

+0

现在我确信我正在给它正确的道路。因为如果我给一个无效的路径,我得到以下 类未找到:“service/OrderProcessService” 用法:WSGEN [options] NewbieToJava 2010-02-21 18:18:54

+0

Ooooppss!我错过了明显的。我正在使用/ intead。在类文件路径中。 – NewbieToJava 2010-02-21 18:32:19

0

转到目标在终端/ classes和运行

wsgen -verbose -keep -cp . com.your.package.name.OrderProcessServiceImpl