Java2WSDL java.lang.ClassNotFoundException

时间:2013-09-09 22:17:10

标签: java wsdl axis java2wsdl

我尝试使用Axis Java2WSDL类创建WSDL,并获得未找到目标类的错误。

以下是我采取的步骤:

我从这里开始使用教程:http://axis.apache.org/axis/java/user-guide.html#Step_2:_Create_WSDL_using_Java2WSDL

一个。我添加了文件的路径

enter image description here

到AXISCLASSPATH,并且我将包含文件的目录的路径添加到CLASSPATH var,所以它们看起来像

  

AXISCLASSPATH ='C:\ Program Files \ Java \ axis'\ axis.jar;'C:\ Program   文件\的Java \轴 '\公共发现-0.2.jar;' C:\ PROGRAM   Files \ Java \ axis'\ commons-loggin g.jar;'C:\ Program   文件\的Java \轴 '\没有jaxrpc.jar;' C:\ PROGRAM   文件\的Java \轴 '\没有saaj.jar;' C:\ PROGRAM   文件\的Java \轴 '\ log4j的-1.2.17.jar;' C:\ PROGRAM   文件\的Java \轴 '\ XML-apis.jar;' C:\ PROGRAM   文件\的Java \轴 '\ xercesImpl.jar;' C:\ PROGRAM   文件\爪哇\轴线\ wsdl4j.jar

     

CLASSPATH = C:\ Program Files \ Java \ axis \ *; C:\ Dev \ webworkspace \ WSDLGENTEST \ src \ test \ *

  • 我尝试了没有引号,单引号和双引号的路径,没有效果。
  • C:\ Dev \ webworkspace \ WSDLGENTEST \ src \ test \ * - 工作目录的路径。

B中。我创建了一个示例接口I1

package test;

public interface I1 {
  public void f1();

}

℃。我构建了界面并在

中看到了I1.class文件
  

C:\开发\ webworkspace \ WSDLGENTEST \ SRC \测试\

D.我跑了一个命令

 java org.apache.axis.wsdl.Java2WSDL -o wp.wsdl
 -l"http://localhost:8080/WSDLGENTEST/services/Greeting" 
 -n"urn:test" -p"test" "urn:test" test.I1

并收到错误

  

java.lang.ClassNotFoundException:test.I1           在java.net.URLClassLoader $ 1.run(未知来源)           在java.net.URLClassLoader $ 1.run(未知来源)           at java.security.AccessController.doPrivileged(Native Method)           at java.net.URLClassLoader.findClass(Unknown Source)           at java.lang.ClassLoader.loadClass(Unknown Source)           at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)           at java.lang.ClassLoader.loadClass(Unknown Source)           在org.apache.axis.utils.ClassUtils $ 2.run(ClassUtils.java:187)           at java.security.AccessController.doPrivileged(Native Method)           at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)           at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)           在org.apache.axis.wsdl.fromJava.Emitter.setCls(Emitter.java:2079)           在org.apache.axis.wsdl.Java2WSDL.run(Java2WSDL.java:584)           在org.apache.axis.wsdl.Java2WSDL.main(Java2WSDL.java:682)

  • 我试图从
  • 运行它
  

C:\开发\ workworkspace \ TEST1 \ BIN \测试\

也来自

  

C:\开发\ workworkspace \ TEST1 \ BIN \

  • 我试图用
  • 运行
I1, 
test.I1, 
test/I1, 
./test.I1, 
C:\Dev\workworkspace\test1\bin\test\test\I1, 
C:\Dev\workworkspace\test1\bin\test\test.I1,
params,总是得到同样的错误。他似乎无法找到该文件。

  • 我用路径的所有可想到的排列和*:
  • 更新了类路径
  

CLASSPATH = C:\ Program Files \ Java \ axis \ *; C:\ Dev \ webworkspace \ WSDLGENTEST \ src; C:\ Dev \ webworkspace \ WSDLGENTEST \ src \ *; C:\ Dev \ webworkspace \ WSDLGENTEST \ SRC \测试\; C:\开发\ webworkspace \ WSDLGENTEST \ SRC \测试\ *; C:\开发\ webworkspace \ WSDLGENTEST \ SRC \测试\ I1.class

仍然是同样的错误。

电子。我编译并运行了一个示例java hello world class,只是为了检查java和path工作 - helloworld类打印了它所需要的东西,但是Java2WSDL不起作用。

C:\Dev\workworkspace\test1\bin>java -cp . test/c1 Picked up
_JAVA_OPTIONS: -Xmx512M 
ohoho

可以做些什么来克服它?

感谢。

1 个答案:

答案 0 :(得分:1)

如果出现同样的问题,我会用'。'添加我的CLASSPATH(我的类路径也将目标锁定在所有轴上)。当前目录。

  

CLASSPATH =

然后就解决了这个问题:

  

“%javabin%\ java.exe”-cp%CLASSPATH%org.apache.axis.wsdl.Java2WSDL