Команда Wsgen генерирует ошибку NoClassDefFoundError в книге «Запуск и запуск веб-служб Java» - PullRequest
0 голосов
/ 16 октября 2018

Как сказано в книгах, я пытаюсь запустить команду: wsgen -cp . ch01.team.Teams в папке, содержащей файлы .class, но выдает следующую ошибку:

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 вызывает исключения NoClassDefFoundError и их ответ, но это не работает.

Может кто-нибудь мне помочь, пожалуйста?

Примечание: я использую Eclipse Juno, и я уже запустилкоманда в папке src создала для меня собственные файлы .class, и я уже выполнил команду в папке bin, где Eclipse имеет файлы .class скомпилированных файлов .java.

1 Ответ

0 голосов
/ 16 октября 2018

Проблема заключалась в том, что вам не нужно находиться внутри папки, в которой находятся файлы .class, например, если ваши файлы .class находятся в папке / bin / team (эта папка находится в папке YourProject /), тоВы должны выполнить команду в корзине.

Сначала я запускал wsgen -cp . Teams в папку bin / team /, но затем я запускал wsgen -cp . team.Teams на уровне / bin.

Надеюсь, это поможет.

...