Wsgen命令在Java Web Services Up and Running Book

时间:2018-10-15 21:51:40

标签: java exception jax-ws wsgen

正如书中所述,我正在尝试在包含.class文件的文件夹中运行命令:wsgen -cp . ch01.team.Teams ,但会引发下一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: bin/team/Teams (wrong name: team/Teams)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.sun.tools.internal.ws.wscompile.WsgenOptions.getClass(WsgenOptions.java:290)
    at com.sun.tools.internal.ws.wscompile.WsgenOptions.validateEndpointClass(WsgenOptions.java:229)
    at com.sun.tools.internal.ws.wscompile.WsgenOptions.validate(WsgenOptions.java:220)
    at com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:116)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159)
    at com.sun.tools.internal.ws.WsGen.main(WsGen.java:42)

顺便说一句,我已经在wsgen raising NoClassDefFoundError exceptions中阅读了该问题及其答案,但这没有用。

有人可以帮我吗?

注意: 我正在使用Eclipse Juno,并且已经在src文件夹中运行了该命令,为我自己生成了.class文件,并且已经在bin文件夹中运行了该命令,其中Eclipse具有已编译的.java文件的.class文件。

1 个答案:

答案 0 :(得分:0)

问题是您不必位于.class文件所在的文件夹中,例如,如果您的.class文件位于/ bin / team文件夹中(此文件夹位于YourProject /文件夹中),则您必须在垃圾箱中运行命令。

起初,我将wsgen -cp . Teams运行到bin / team /文件夹中,然后在/ bin级别运行了wsgen -cp . team.Teams

希望它可以提供帮助。