हाय मुझे वेब सेवा मिल गई है और चल रहा है, मैंने जैक्स ws का उपयोग किया है। मैंने स्प्रिंग का उपयोग स्वायत्त और सामान के साथ बीन्स का उपयोग करने में सक्षम होने के लिए किया है जो वसंत एप्लिकेशन कॉन्टैक्ट.एक्सएमएल में संपत्ति मूल्य इंजेक्शन की तरह देता है।जेएक्स डब्ल्यूएस webservice एप्लिकेशन कॉन्टेक्स्ट से वसंत बीन नहीं लेता है, इसलिए शून्य सूचक अपवाद
<context:component-scan base-package="com.mybeans.service" />
<bean id="myProperty" class="com.mybeans.service.MyBeanProperty"
p:Size="BIG">
</bean>
वेब सेवा अंत बिंदु कक्षा में, मैं किया है::
मैं नीचे वसंत applicationcontext.xml प्रविष्टि
@Autowired private MyBeanProperty myProperty;
और मैं एक विधि है:
public String getSize() {
return myProperty.getSize();
}
दुर्भाग्य से जब मैं विधि का आह्वान करता हूं तो उसे कोई मूल्य नहीं मिलता है और nullpointerexception फेंकता है।
पीएस: मैंने webservice के wsdl को चलाने के लिए soapUI का उपयोग किया और विधि को बुलाया।
क्या स्प्रिंग द्वारा सेम बनने से पहले webservice चलता है ??
duffmo करने के लिए
हाँ मैं applicationContext में घटक स्कैन का इस्तेमाल किया। और मेरे पास web.xml में नीचे संदर्भ लोडर श्रोता है। कृपया मेरी मदद करो ..
यहाँ कोड
मैं JAX-WS उपयोग कर रहा हूँ और स्प्रिंग के साथ मेरा पूरा कोड explainaton है और स्थापना के लिए कुछ WebServices जो बिलाव 7 पर चलाने की जरूरत है मैं निर्माण के रूप में Maven उपयोग कर रहा हूँ कोशिश उपकरण इसलिए मैं सिर्फ अपनी दो निर्भरता यहां सूचीबद्ध:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.1.3</version>
</dependency>
</dependencies>
मेरी सेवा कक्षाएं 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 है:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>toolbox</display-name>
<description>testing webservices</description>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>jaxws-servlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jaxws-servlet</servlet-name>
<url-pattern>/testservice</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jaxws-servlet</servlet-name>
<url-pattern>/helloworldservice</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
</web-app>
और यह मेरा धूप में jaxws.xml है:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint
name="jaxws-servlet"
implementation="com.test.services.TestService"
url-pattern="/testservice"/>
<endpoint
name="jaxws-servlet"
implementation="com.test.services.HelloWorldService"
url-pattern="/helloworldservice" />
</endpoints>
यह महान काम करता है और मैं करने के लिए अपने ब्राउज़र इंगित करके सेवाओं का उपयोग कर सकते हैं [ यूआरएल] http://localhost:8080/toolbox/testservice[/url] क्रमशः [यूआरएल] http://localhost:8080/toolbox/helloworldservice[/url]। हालांकि वसंत समर्थन स्पष्ट रूप से सक्रिय नहीं है। web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>toolbox</display-name>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
और applicationContext.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<context:component-scan base-package="com.test.services" />
<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
<property name="baseAddress" value="http://localhost:8080/" />
</bean>
</beans>
इसके अलावा मैं @Service टिप्पणी के साथ दोनों सेवा कक्षाएं एनोटेट
मैं जिसके बाद सिर्फ HelloWorldService उपलब्ध लीवर की कोशिश की। जैसा कि मैंने पहले उल्लेख किया था, यह केवल वर्णानुक्रमिक पहले webservice प्रकाशित करता है, इसलिए HelloWorldService। इसके अलावा यह यूआरएल को बदलता है, क्योंकि सेवा अब [url] के रूप में [url] http://localhost:8080/toolbox/helloworldservice[/url] के बजाय उपलब्ध है। टॉमकैट के लॉगिंग से पता चलता है कि वसंत संदर्भ दोनों वर्गों को स्प्रिंग बीन्स के रूप में लोड करता है। क्या आपके पास दोनों सेवाओं को उपलब्ध रखते हुए वसंत समर्थन को सक्षम करने के बारे में कोई विचार या सुझाव हैं ??
यह अब बहुत अच्छा काम कर रहा है, धन्यवाद। @Autowired अभी भी काम नहीं किया है लेकिन घटक-स्कैन काम करता है, इसलिए मैंने अनुप्रयोग संदर्भ का उपयोग करने और getBean ("") विधि को कॉल करने के साथ एक काम किया। –
Steer360