2013-03-22 2 views
2

Я хочу, чтобы динамический клиент вызывал созданную мной веб-службу. Я пробовал использовать JaxWsDynamicClientFactory, как упоминалось в его официальном site, но я не получаю никакого вывода. Вместо этого я получаю NullPointerException.Динамический клиент, использующий JaxWsDynamicClientFactory (Apache CXF)

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); 
Client c = dcf.createClient("http://localhost:8080/service/SearchingSEI?wsdl"); 

Вторая линия бросает исключение.

Стек след:

Exception in thread "main" java.lang.NullPointerException 
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:189) 
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:143) 
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:138) 
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.compileJavaSrc(DynamicClientFactory.java:599) 
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:367) 
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:235) 
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:228) 
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:183) 
    at com.client.dynamic.DynamicClientFactory.main(DynamicClientFactory.java:24) 

Я понятия не имею, что проблема есть. Любые предложения были бы большой помощью. Благодарю.

+0

Вы используете старую версию Java? – artbristol

+0

Да. 6 update 27 – Sujan

+0

@artbristol Также попытался на 7. Но все равно не повезло. – Sujan

ответ

3

Вам необходимо запустить код с помощью JDK, а не JRE. NPE происходит в следующем немного CxF в Compiler класса

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
    StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); 

compiler является недействительным, если вы работаете в JRE.

+0

Можете ли вы быть более сложными? Как я могу решить свою проблему? – Sujan

+0

Установили ли вы JDK? –

+0

Конечно. Как я мог развиваться без него? – Sujan

1

Это из-за использования CXF с использованием JRE7 вместо JDK7. Когда вы устанавливаете JDK в Windows, по умолчанию JRE также устанавливается, и все предпочтения указываются на JRE.

  1. Проверьте свою ПУТЬ. Убедитесь, что указана цифра $ {JDK_LOCATION}/bin
  2. Проверьте свой JAVA_HOME. Убедитесь, что на нем указано значение $ {JDK_LOCATION}
  3. Перейти к панели управления/java. Добавьте JDK.
  4. Кроме того, необходимо проверить затмение в оконном> Preference-> ява> Installed JREs
Смежные вопросы