1

私はJavaとWebサービスの両方に比較的慣れていないので、明らかなものでなければなりません。ほとんどの場合、クラスパスに関するものです。私のクラス ファイルは、現在のディレクトリから相対的なディレクトリ 'src/ibmwebservicetutorial/service/' の下にあります。私は何が間違っているのですか?

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)
4

2 に答える 2

1

エラーは、正当なクラス名が必要であることを示しています。ソースパスを指定しました。完全修飾クラス名のようなものが必要です (例: "xyzFoo" )。

docsを確認して、次のように実行してみてください。

wsgen -wsdl -classpath . service.OrderProcessService

wsgen は .java ではなく .class ファイルで動作すると思います。これを実行する前に、ソース ファイルをコンパイルしたことを確認してください。

于 2010-02-21T17:50:26.937 に答える
0

ターミナルでターゲット/クラスに移動して実行します

wsgen -verbose -keep -cp . com.your.package.name.OrderProcessServiceImpl  
于 2013-08-19T11:00:38.510 に答える