`
OuYangGod
  • 浏览: 54179 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Apache xml-rpc与spring的整合

阅读更多
  之前在项目中使用了Apache xml-rpc,遇到了一个麻烦的问题。spring没有提供对xml-rpc的支持,在处理webservice请求的时候,没有办法使用spring容器中管理的各种各样的bean对象。显然,这是不能接受的。

  使用Apache xml-rpc,一般只需要在web.xml中定义一个servlet (XmlRpcServlet), 再实现用于处理webservice请求的组件类就可以了。
  比如定义一个Servlet:
<servlet>
	<servlet-name>XmlRpcServlet</servlet-name>
	<servlet-class>org.apache.xmlrpc.webserver.XmlRpcServlet</servlet-class>
	<init-param>
		<param-name>enabledForExtensions</param-name>
		<param-value>true</param-value>
	</init-param>
</servlet>

  实现处理webservice请求的组件:
public class Calculator
{
	public int add(int i1, int i2)
	{
		return i1 + i2;
	}
}

  除此之外,还需要定义一个property文件,告诉xml-rpc,在请求来了以后,用哪个组件去处理。这个property文件必须命名为XmlRpcServlet.properties,并且必须放到org.apache.xmlrpc.webserver包下面。
Calculator=com.oyl.Calculator

  这样,当webservice收到请求后,就会初始化一个新的组件对象去处理请求。这样,新的问题也来了,一般的web应用程序都使用spring来管理各个业务组件,通过上面的例子不难发现,我们没有办法使用spring管理的bean去处理webservice的请求,每次都初始化一个新的对象去处理请求,也会造成资源的浪费。
  那么,怎么才能在xml-rpc中使用spring管理的bean去处理webservice的请求呢?
  首先,要实现一个接口org.apache.xmlrpc.server.RequestProcessorFactoryFactory,这个接口类定义了如何创建对象去处理webservice请求:
public class CustomRequestProcessorFactoryFactory implements
        RequestProcessorFactoryFactory
{
    private final RequestProcessorFactory factory = new CustomRequestProcessorFactory();
    private final CustomWebServiceHandler service;


    public CustomRequestProcessorFactoryFactory(CustomWebServiceHandler service)
    {
        this.service = service;
    }


    @Override
    public RequestProcessorFactory getRequestProcessorFactory(Class arg0)
            throws XmlRpcException
    {
        return factory;
    }

    private class CustomRequestProcessorFactory implements
            RequestProcessorFactory
    {

        @Override
        public Object getRequestProcessor(XmlRpcRequest arg0)
                throws XmlRpcException
        {
            return service;
        }

    }
}

  仔细看代码会发现,接口org.apache.xmlrpc.server.RequestProcessorFactoryFactory实际上就是一个工厂的工厂,它是一个用于创建处理webservice请求对象的工厂的工厂类。在上面的例子中,创建webservice请求对象的工厂类是一个实现了RequestProcessorFactory接口的内部类,它主要是返回我们真正需要用来处理请求的CustomWebServiceHandler对象。
  有了上面这个工厂的工厂类,我们还需要扩展一下默认的XmlRpcServlet。主要是实现newXmlRpcHandlerMapping方法,在newXmlRpcHandlerMapping方法中,把需要用到的spring bean对象取出来,再作为参数创建一个RequestProcessorFactoryFactory对象,就可以达到目的了。
public class CustomXmlRpcServlet extends XmlRpcServlet
{
    private static final long serialVersionUID = 8615627610262194L;
    protected static ApplicationContext ctx = null;

    public CustomXmlRpcServlet()
    {
        super();
    }


    public void init()
    {
        if (ctx == null)
        {
            ctx = WebApplicationContextUtils
                    .getRequiredWebApplicationContext(this.getServletContext());
        }
    }


    protected XmlRpcHandlerMapping newXmlRpcHandlerMapping()
            throws XmlRpcException
    {
        PropertyHandlerMapping mapping = new PropertyHandlerMapping();
        
        CustomWebServiceHandler service = (CustomWebServiceHandler) ctx.getBean("customWebServiceHandler");
        
        mapping.setRequestProcessorFactoryFactory(new CustomRequestProcessorFactoryFactory(service));
        mapping.addHandler("CustomWebServiceHandler", CustomWebServiceHandler.class);

        return mapping;
    }
}

  这样扩展以后,之前提到的XmlRpcServlet.properties文件也不再需要了。
0
0
分享到:
评论
4 楼 wang_janne 2014-07-16  
574221240@qq.com 兄弟方便的话,给我个源码!万分感谢!

16:49:16.330 [http-80-7] ERROR o.a.xmlrpc.webserver.XmlRpcServlet - Failed to create XmlRpcServer: Failed to locate resource XmlRpcServlet.properties
org.apache.xmlrpc.XmlRpcException: Failed to locate resource XmlRpcServlet.properties
at org.apache.xmlrpc.webserver.XmlRpcServlet.newXmlRpcHandlerMapping(XmlRpcServlet.java:158) ~[xmlrpc-server-3.1.jar:3.1]
at org.apache.xmlrpc.webserver.XmlRpcServlet.init(XmlRpcServlet.java:96) ~[xmlrpc-server-3.1.jar:3.1]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.32]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.32]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) [catalina.jar:6.0.32]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) [tomcat-coyote.jar:6.0.32]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) [tomcat-coyote.jar:6.0.32]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.32]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_13]
2014-7-16 16:49:16 org.apache.catalina.core.StandardWrapperValve invoke
严重: Allocate exception for servlet XmlRpcServlet
org.apache.xmlrpc.XmlRpcException: Failed to locate resource XmlRpcServlet.properties
at org.apache.xmlrpc.webserver.XmlRpcServlet.newXmlRpcHandlerMapping(XmlRpcServlet.java:158)
at org.apache.xmlrpc.webserver.XmlRpcServlet.init(XmlRpcServlet.java:96)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
16:49:16.432 [http-80-7] ERROR 500.jsp - Failed to locate resource XmlRpcServlet.properties
org.apache.xmlrpc.XmlRpcException: Failed to locate resource XmlRpcServlet.properties
at org.apache.xmlrpc.webserver.XmlRpcServlet.newXmlRpcHandlerMapping(XmlRpcServlet.java:158) ~[xmlrpc-server-3.1.jar:3.1]
at org.apache.xmlrpc.webserver.XmlRpcServlet.init(XmlRpcServlet.java:96) ~[xmlrpc-server-3.1.jar:3.1]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) ~[catalina.jar:6.0.32]
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809) ~[catalina.jar:6.0.32]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) ~[catalina.jar:6.0.32]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) ~[catalina.jar:6.0.32]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) ~[catalina.jar:6.0.32]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.32]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) [catalina.jar:6.0.32]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) [tomcat-coyote.jar:6.0.32]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) [tomcat-coyote.jar:6.0.32]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.32]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_13]
org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse servers response: Expected methodResponse element, got html
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:177)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
at org.apache.xmlrpc.client.XmlRpcLiteHttpTransport.sendRequest(XmlRpcLiteHttpTransport.java:75)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
at com.janne.rpc.client.impl.XmlRpcClientWrapperImpl.execute(XmlRpcClientWrapperImpl.java:76)
at com.janne.quickstart.web.upload.FileUploadController.list(FileUploadController.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.xml.sax.SAXParseException: Expected methodResponse element, got html
at org.apache.xmlrpc.parser.XmlRpcResponseParser.startElement(XmlRpcResponseParser.java:98)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175)
... 66 more
Caused by:
org.xml.sax.SAXParseException: Expected methodResponse element, got html
at org.apache.xmlrpc.parser.XmlRpcResponseParser.startElement(XmlRpcResponseParser.java:98)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
at org.apache.xmlrpc.client.XmlRpcLiteHttpTransport.sendRequest(XmlRpcLiteHttpTransport.java:75)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
at com.janne.rpc.client.impl.XmlRpcClientWrapperImpl.execute(XmlRpcClientWrapperImpl.java:76)
at com.janne.quickstart.web.upload.FileUploadController.list(FileUploadController.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
16:49:17.616 [http-80-5] ERROR c.j.r.c.impl.XmlRpcClientWrapperImpl - service:rpcTestFunction parameters:boys and girls error!
java.lang.Exception: 重复请求“1”次后没有成功。
at com.janne.rpc.client.impl.XmlRpcClientWrapperImpl.execute(XmlRpcClientWrapperImpl.java:87) ~[XmlRpcClientWrapperImpl.class:na]
at com.janne.quickstart.web.upload.FileUploadController.list(FileUploadController.java:91) [FileUploadController.class:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_13]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_13]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_13]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_13]
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) [servlet-api.jar:na]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.32]
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) [sitemesh-2.4.2.jar:na]
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) [sitemesh-2.4.2.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.32]
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3]
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3]
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.3.jar:1.2.3]
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.32]
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177) [spring-orm-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.32]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.32]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.32]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.32]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.32]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) [catalina.jar:6.0.32]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) [tomcat-coyote.jar:6.0.32]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) [tomcat-coyote.jar:6.0.32]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.32]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_13]
Caused by: org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse servers response: Expected methodResponse element, got html
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:177) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcLiteHttpTransport.sendRequest(XmlRpcLiteHttpTransport.java:75) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136) ~[xmlrpc-client-3.1.jar:3.1]
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125) ~[xmlrpc-client-3.1.jar:3.1]
at com.janne.rpc.client.impl.XmlRpcClientWrapperImpl.execute(XmlRpcClientWrapperImpl.java:76) ~[XmlRpcClientWrapperImpl.class:na]
... 58 common frames omitted
Caused by: org.xml.sax.SAXParseException: Expected methodResponse element, got html
at org.apache.xmlrpc.parser.XmlRpcResponseParser.startElement(XmlRpcResponseParser.java:98) ~[xmlrpc-common-3.1.jar:3.1]
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) ~[na:1.6.0_13]
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) ~[na:1.6.0_13]
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175) ~[xmlrpc-client-3.1.jar:3.1]
... 66 common frames omitted
3 楼 碧落海的风 2012-09-05  
求源码,正在研究这个,一直有个问题解决不了
baifan0516@163.com
谢谢
2 楼 OuYangGod 2012-08-08  
已经发到你邮箱了。
1 楼 geniusxiaoyu 2012-08-06  
你好,我在项目中也遇到了Apache xml rpc与Spring整合的变量注入问题,我看了你那篇文章,CustomWebServiceHandler 这个类不知道是不是你自己定义的,调试不同,能否发一份能调试通过的源码呢,多谢,感激不尽!!!
Email: 171670215@qq.com

相关推荐

    Java的XML-RPC函数库源代码

    在实际开发中,XML-RPC库通常与其他Java Web框架如Spring、Struts等结合使用,以提供更强大的功能和集成能力。此外,XML-RPC的简单性和易用性也使其成为初学者学习分布式系统和Web服务的不错选择。 总结起来,...

    apache xml rpc client

    - Apache XML-RPC客户端可以与其他Java框架,如Spring、Struts等,无缝集成,实现更复杂的应用场景。 总结来说,Apache XML-RPC客户端是Java开发者实现远程调用的一种实用工具,通过简单的API可以轻松地与支持XML-...

    apache-xmlrpc

    8. **与其他技术集成**:XML-RPC可以与Spring框架、Struts等其他Java框架集成,以实现更复杂的应用场景。 总之,`apache-xmlrpc-3.1.3.jar`为开发者提供了一个强大的工具,用于实现跨平台的远程调用,简化了Web服务...

    Spring整合JAVA XMLRPC

    1. **添加依赖**: 使用Maven技术,你需要在项目pom.xml中添加Spring和XML-RPC的相关依赖库,如`spring-context`, `spring-web`, `xmlrpc-client`和`xmlrpc-server`。 2. **配置XML-RPC服务**: 在Spring的配置文件...

    apache-cxf-2.7.10

    4. **数据绑定**:CXF支持多种数据绑定技术,如JAXB(Java Architecture for XML Binding),用于将XML文档映射到Java对象,以及JAX-RPC(Java API for XML-based Remote Procedure Calls),使得Java方法可以直接...

    apache-cxf-2.7.6.rar

    8. **与其他Apache项目的集成**:CXF能够很好地与Apache其他项目集成,如Spring框架,可以方便地在Spring应用中部署和管理CXF服务。 在`apache-cxf-2.7.6`这个压缩包中,你将找到以下组件和资源: 1. **bin**目录...

    apache-cxf-3.3.7.zip

    5. **兼容性提升**:可能提升了与其他框架或库的兼容性,比如与Java版本、Spring框架等。 **使用压缩包中的内容** 解压"apache-cxf-3.3.7.zip"后,你会得到Apache CXF的完整发布包,其中包括: 1. **JAR文件**:...

    xfire-all-1.2.6.jar

    6. **与Spring框架的整合**:XFire还支持与Spring框架的无缝集成,这使得在Spring环境中使用Web服务变得简单。通过Spring的依赖注入特性,可以轻松管理XFire的服务和客户端,提升应用的可维护性和可测试性。 总之,...

    【42】使用dubbo、spring-boot等技术实现互联网后台服务项目架构视频教程 .txt

    Apache Dubbo(以下简称“Dubbo”)是一款高性能、轻量级的开源Java RPC框架。它提供了三个核心功能:面向接口代理、服务自动注册与发现以及高透明化的负载均衡,这些功能极大地简化了分布式系统之间的调用过程。...

    spring-framework-3.0.5.RELEASE-dependencies1

    这个版本的依赖包集合,称为“spring-framework-3.0.5.RELEASE-dependencies”,包含了构建基于Spring的应用所必需的核心库和第三方组件。 1. **javax.xml.stream**:这是Java API for XML Processing (StAX)的一...

    Dubbo-RPC分布式服务框架.pptx

    Dubbo-RPC分布式服务框架 Dubbo 是阿里巴巴开发的一个分布式服务框架,...采用 Spring-Invoker 实现。 5. Webservice – 基于 SOAP 协议的 RPC 框架,支持多种数据类型,例如 XML、JSON 等,适合企业之间的集成。

    apache-cxf-3.2.1

    4. **数据绑定**:CXF包含了JAXB(Java Architecture for XML Binding)和JAX-RPC,用于对象到XML的自动转换,简化了服务接口的定义和使用。 5. **协议转换**:CXF可以将Web服务绑定到各种传输协议,如HTTP、HTTPS、...

    webservice xfire整合spring(webservice配置采用注解)例子

    【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...

    spring-framework-3.0.5.RELEASE-dependencies-1

    spring-framework-3.0.5.RELEASE-dependencies 好不容易找到了,赶紧分享一下 因为不能大于20M,共分了8个包,都是独立的,我列了目录,可以只下载需要的包,这是1号包: 1号包: edu.emory.mathcs.backport edu.oswego.cs....

    spring整合xfire的jar

    总之,Spring与Xfire的整合是将Spring的灵活性和Xfire的Web服务功能相结合,以简化开发流程,提高可维护性和可测试性。虽然Xfire目前已经被更现代化的Web服务框架所取代,如Apache CXF,但在某些旧项目中,理解这种...

    spring axis2整合

    本篇将详细探讨如何将Spring 3.2.5版本与Axis2 1.6.2版本进行整合,以便在Spring环境中便捷地部署和管理Web服务。 首先,我们需要理解Spring和Axis2的基本概念。Spring框架以其依赖注入(Dependency Injection,DI...

    spring-framework-3.0.5.RELEASE-dependencies-4

    spring-framework-3.0.5.RELEASE-dependencies 好不容易找到了,赶紧分享一下 因为不能大于20M,共分了8个包,都是独立的,我列了目录, 可以只下载需要的包,这是4号包: 1号包: edu.emory.mathcs.backport edu.oswego....

    涉及的xfire所有jar包

    5. **CXF Compatibility**:虽然xfire后来被Apache CXF项目吸收,但xfirejar仍然保持了与CXF的兼容性,使得用户可以在两者之间平滑过渡。 二、xfire的应用场景 1. **Web服务开发**:xfire简化了SOAP和RESTful Web...

    incubator-dubbo-spring-boot-project

    Dubbo Spring Boot项目 Spring Boot Project使使用Dubbo作为RPC框架轻松创建应用程序。...您可以通过向pom.xml中添加以下依赖项,将最新的dubbo-spring-boot-starter引入项目中。 &lt; groupId&gt;com.alibaba.boot&lt;

    spring-hadoop-getting-started:Spring for Apache Hadoop 入门示例

    《Spring for Apache Hadoop 入门指南》 Apache Hadoop 是一个开源...在实际项目中,结合"spring-hadoop-getting-started-master"这个示例项目,你可以深入学习并实践Spring Hadoop的使用,从而更好地驾驭Hadoop生态。

Global site tag (gtag.js) - Google Analytics