2013-11-22 201 views
0

我正在做SOAP WebService與Spring的集成。因爲我想在WebServices中使用Spring Dependancy。但是我在appicationContext.xml中出錯。Spring - SOAP Web服務集成

這是我的代碼。 我的applicationContext.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_3_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

回答

1

現在已經得到解決。從類路徑中提供XSD「classpath:spring-jax-ws-core.xsd」。

+0

你能給我一些罐子和你已經加入這個項目的所有罐子的名字嗎? – Krishna