Пролет - Интегриране на SOAP уеб услуга

Правя интеграция на SOAP WebService с Spring. Защото искам да използвам Spring Dependancy в WebServices. Но получавам грешка в appicationContext.xml.

Ето моя код. Моето приложениеContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:ws="https://jax-ws.java.net/spring/core"
       xmlns:wss="https://jax-ws.java.net/spring/servlet"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       https://jax-ws.java.net/spring/core
       https://jax-ws.java.net/spring/core.xsd
       https://jax-ws.java.net/spring/servlet
       https://jax-ws.java.net/spring/servlet.xsd">                
    <wss:binding url="/userService">
        <wss:service>
            <ws:service bean="#UserService"/>
        </wss:service>
    </wss:binding>
    <bean id="UserService" class="com.ksh.service.layer.UserService">
        <property name="userDao" ref="UserDao" />
    </bean>
    <bean id="UserDao" class="com.ksh.dao.layer.UserDaoImpl" />
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app
package com.ksh.service.layer;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.ksh.entities.UserModel;
@WebService(name = "UserService")
@SOAPBinding(style = Style.RPC)
public interface UserService {

    @WebMethod
    public void firstMethod();
    @WebMethod
    public void secondMethod(String string);
    @WebMethod
    public void thirdMethod(UserModel userModel);   
}

package com.ksh.service.layer;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.ksh.dao.layer.UserDao;
import com.ksh.entities.UserModel;

@WebService(endpointInterface = "com.ksh.service.layer.UserService", name = "UserService")
@SOAPBinding(style = Style.RPC)
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    @Override
    public void firstMethod() {
        userDao.firstMethod();
    }
    @Override
    public void secondMethod(String string) {
        userDao.secondMethod(string);
    }
    @Override
    public void thirdMethod(UserModel userModel) {
        userDao.thirdMethod(userModel);
    }
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }   
}
0.xsd" id="WebApp_ID" version="3.0"> <display-name>Spring_WebServices_1</display-name> <servlet> <servlet-name>jaxws-servlet</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>jaxws-servlet</servlet-name> <url-pattern>/userService</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>

Сервизен код.

package com.ksh.service.layer;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.ksh.entities.UserModel;
@WebService(name = "UserService")
@SOAPBinding(style = Style.RPC)
public interface UserService {

    @WebMethod
    public void firstMethod();
    @WebMethod
    public void secondMethod(String string);
    @WebMethod
    public void thirdMethod(UserModel userModel);   
}

package com.ksh.service.layer;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.ksh.dao.layer.UserDao;
import com.ksh.entities.UserModel;

@WebService(endpointInterface = "com.ksh.service.layer.UserService", name = "UserService")
@SOAPBinding(style = Style.RPC)
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    @Override
    public void firstMethod() {
        userDao.firstMethod();
    }
    @Override
    public void secondMethod(String string) {
        userDao.secondMethod(string);
    }
    @Override
    public void thirdMethod(UserModel userModel) {
        userDao.thirdMethod(userModel);
    }
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }   
}

Тук е изключението

INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
Nov 22, 2013 10:09:59 AM org.springframework.util.xml.SimpleSaxErrorHandler warning
WARNING: Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'https://jax-ws.java.net/spring/servlet.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.

        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaWarning(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Nov 22, 2013 10:09:59 AM org.springframework.web.context.ContextLoader initWebApplicationContext
    SEVERE: Context initialization failed
    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 14 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'wss:binding'.
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)

Препоръчах "http://www.mkyong.com/webservices/jax-ws/jax-ws-spring-integration-example/" връзка, за да работи, но няма късмет.

Има проблем с XSD, но не знам как да го разреша.

Поздрави, Kshitij


person KSHiTiJ    schedule 22.11.2013    source източник


Отговори (1)


Разрешено сега. Осигурете XSD "classpath:spring-jax-ws-core.xsd" от пътя на класа.

person KSHiTiJ    schedule 22.11.2013
comment
можете ли да ми дадете брой буркани и име на всички буркани, които сте включили в този проект? - person Kishan Bheemajiyani; 09.10.2014