Java2WSDL java.lang.ClassNotFoundException
Я пытаюсь сделать WSDL с классом Axis Java2WSDL, и получаю ошибку, что мой целевой класс не найден.
Вот шаги, которые я сделал:
Я начал с учебника отсюда: http://axis.apache.org/axis/java/user-guide.html
А. Я добавил путь к файлам
к AXISCLASSPATH, а также я добавил путь к каталогу, содержащему файлы к переменной CLASSPATH, чтобы они выглядели как
AXISCLASSPATH='C:\Program Files\Java\axis'\axis.jar;'C:\Program Files\Java\axis'\commons-discovery-0.2.jar;'C:\Program Files\Java\axis'\commons-loggin g.jar;'C:\Program Files\Java\axis'\jaxrpc.jar;'C:\Program Files\Java\axis'\saaj.jar;'C:\Program Files\Java\axis'\log4j-1.2.17.jar;'C:\Program Files\Java\axis'\xml-apis.jar;'C:\Program Files\Java\axis'\xercesImpl.jar;'C:\Program Files\Java\ ось \ wsdl4j.jar
CLASSPATH = C: \ Program Files \ Java \ axis \ *; C:\Dev\webworkspace\WSDLGENTEST\ src \ test \ *
- я пробовал путь без кавычек, одинарные и двойные кавычки, безрезультатно.
- C:\Dev\webworkspace\WSDLGENTEST\ src \ test \ * - путь к рабочему каталогу.
Б. Я создал образец интерфейса I1
package test; public interface I1 { public void f1(); }
C. Я построил интерфейс и увидел файл I1.class в
C:\Dev\webworkspace\WSDLGENTEST\ SRC \ Test \
Я управлял командой
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(неизвестный источник) на java.security.AccessController.doPrivileged(собственный метод) на java.NET.URLClassLoader.findClass(Неизвестный источник) по адресу java.lang.ClassLoader.loadClass(Неизвестный источник) по адресу sun.misc.Launcher$AppClassLoader.loadClass(Неизвестный источник) по адресу java.lang.ClassLoader.loadClass(Неизвестный источник) в организации.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187) в java.security.AccessController.doPrivileged(собственный метод) в org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160) в 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:\Dev\workworkspace\test1\ Bin \ тест \
а также из
C:\Dev\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 со всеми возможными перестановками пути и *:
CLASSPATH = C: \ Program Files \ Java \ axis \ *; C:\Dev\webworkspace\WSDLGENTEST\ src; C:\Dev\webworkspace\WSDLGENTEST\ src \ *; C:\Dev\webworkspace\WSDLGENTEST\ src \ test \; C:\Dev\webworkspace\WSDLGENTEST\ SRC \ Test\*;C:\Dev\webworkspace\WSDLGENTEST\ SRC \ Test\I1.class
все та же ошибка.
E. Я скомпилировал и запустил пример мирового класса приветствия Java только для проверки работы Java и путей - класс helloworld напечатал то, что ему было нужно, но Java2WSDL не работает.
C:\Dev\workworkspace\test1\bin>java -cp . test/c1 Picked up
_JAVA_OPTIONS: -Xmx512M
ohoho
Что можно сделать, чтобы преодолеть это?
Благодарю.
1 ответ
Если бы у меня возникла та же проблема, я добавил свой CLASSPATH (мой путь к классу также нацелен на все банки осей) с помощью ". текущий каталог.
CLASSPATH =.
Тогда это сработало:
"% javabin% \ java.exe" -cp% CLASSPATH% org.apache.axis.wsdl.Java2WSDL