Веб-сервис JAX WS не принимает Spring Bean из applicationcontext, поэтому выдает исключение нулевого указателя

Привет я получил веб-сервис и работает, я использовал jax ws. Я использовал Spring, чтобы иметь возможность использовать bean-компоненты с Autowired и другие вещи, которые Spring выдает как инъекцию значения свойства в applicationContext.xml.

У меня есть нижеприведенная весенняя запись applicationcontext.xml:

      


В классе конечной точки веб-сервиса я сделал:

@Autowired private MyBeanProperty myProperty;

И у меня есть метод:

public String getSize() {

return myProperty.getSize();

}

К сожалению, когда я вызываю метод, он не получает никакого значения и выбрасывает nullpointerexception.

PS: я использовал soapUI для запуска wsdl веб-сервиса и вызвал метод.

Работает ли веб-служба до того, как Spring создаст bean-компоненты?

Даффмо

Да, я использовал компонентное сканирование в applicationContext. И у меня есть слушатель загрузчика контекста, как показано ниже в web.xml. Пожалуйста, помогите мне..

Вот мое полное объяснение кода с кодом

Я использую JAX-WS и Spring и пытаюсь настроить несколько Web-сервисов, которые должны работать на Tomcat 7. Я использую Maven в качестве инструмента для сборки, поэтому я просто перечисляю здесь две свои зависимости:


   
      org.springframework
      spring-web
      3.0.5.RELEASE
   

     
    
      com.sun.xml.ws
      jaxws-rt
      2.1.3
    

    

мои классы обслуживания расположены в com.test.services и называются TestService & HelloWorldService и выглядит следующим образом:

package com.test.services;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService( name = "Test", serviceName = "TestService" )
public class TestService {

  @WebMethod
  public String getTest() {
    return "Test";
  }

}

это мой web.xml:



  toolbox
  testing webservices
  
    com.sun.xml.ws.transport.http.servlet.WSServletContextListener
  
  
    jaxws-servlet
    com.sun.xml.ws.transport.http.servlet.WSServlet
    1
  
  
    jaxws-servlet
    /testservice
  
  
    jaxws-servlet
    /helloworldservice
  
  
    10
  

а это мой sun-jaxws.xml:



    
    

Это прекрасно работает, и я могу получить доступ к сервисам, указав в своем браузере [url]HTTP: // локальный: 8080 / набор инструментов / TestService [/ URL] соответственно [url]HTTP: // локальный: 8080 / набор инструментов / helloworldservice [/ URL], Однако поддержка Spring явно не активирована.

Я попробовал следующее, которое только что оставило HelloWorldService доступным: web.xml:



  toolbox
  
    30
  
  
    org.springframework.web.context.ContextLoaderListener
  

и applicationContext.xml:


  
  
    
  
 

кроме того, я аннотировал оба класса Service аннотацией @Service. Как я упоминал ранее, здесь публикуется только первый алфавитный веб-сервис, поэтому HelloWorldService. Также он меняет URL, так как сервис теперь доступен как [url]HTTP: // локальный: 8080 / [/ URL] а не [URL]HTTP: // локальный: 8080 / набор инструментов / helloworldservice [/ URL], Ведение журнала Tomcat показывает, что Spring Context загружает оба класса как бины Spring. Есть ли у вас какие-либо идеи или предложения о том, как включить поддержку Spring при сохранении доступности обеих служб?

Ответы на вопрос(5)

Ваш ответ на вопрос