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

Другие вопросы по тегам