Carlos de Luna Saenz
2016-05-09 18:23:46 UTC
I am trying to get wome axis2 webservices to run, and i have deployed "well" (no error at deploying time in tomcat) but i have a problem when trying to consume the methods:may 09, 2016 1:14:53 PM org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier getServiceObject
ADVERTENCIA: Axis2 Can't find Spring's ApplicationContext
may 09, 2016 1:14:53 PM org.apache.axis2.rpc.receivers.RPCMessageReceiver invokeBusinessLogic
GRAVE: Exception occurred while trying to invoke service method null
org.apache.axis2.AxisFault: The SERVICE_OBJECT_SUPPLIER parameter is not specified.
   at org.apache.axis2.receivers.AbstractMessageReceiver.makeNewServiceObject(AbstractMessageReceiver.java:247)
   at org.apache.axis2.receivers.AbstractMessageReceiver.getTheImplementationObject(AbstractMessageReceiver.java:282)
   at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:78)
   at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
   at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
   at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
   at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
   at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Thread.java:745)
My Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.jcp.org/xml/ns/javaee"
   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
   id="WebApp_ID" version="3.1">
   <display-name>inventarioAJWeb</display-name>
   <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>default.html</welcome-file>
      <welcome-file>default.htm</welcome-file>
      <welcome-file>default.jsp</welcome-file>
   </welcome-file-list>
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
         /WEB-INF/application-context.xml
      </param-value>
   </context-param>
   <context-param>
      <param-name>facelets.SKIP_COMMENTS</param-name>
      <param-value>true</param-value>
   </context-param>
   <context-param>
      <param-name>log4j-config-location</param-name>
      <param-value>/WEB-INF/log4j.properties</param-value>
   </context-param>
   <context-param>
      <description>State saving method: 'client' or 'server' (=default). See
         JSF Specification 2.5.2</description>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>client</param-value>
   </context-param>
   <context-param>
      <param-name>primefaces.THEME</param-name>
      <param-value>aristo</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.PROJECT_STAGE</param-name>
      <param-value>Development</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.CONFIG_FILES</param-name>
      <param-value>/WEB-INF/faces-config.xml</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
      <param-value>false</param-value>
   </context-param>
   <context-param>
      <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
      <param-value>resources.application</param-value>
   </context-param>
   <listener>
      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
   </listener>
   <!-- Servlets -->
   <!-- JSF mapping -->
   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <!-- Apache Axis2 web service Servlet -->
   <servlet>
      <display-name>Apache-Axis Servlet</display-name>
      <servlet-name>AxisServlet</servlet-name>
      <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.xhtml</url-pattern>
   </servlet-mapping>
   <!-- Apache Axis2 web service Servlet Mapping -->
   <servlet-mapping>
      <servlet-name>AxisServlet</servlet-name>
      <url-pattern>/services/*</url-pattern>
   </servlet-mapping>
</web-app>
my services.xml:
<serviceGroup>
   <service name="catalogoSync">
      <description>
         Este WS sera utilizado para la sincronización de catálogos.
      </description>
      <messageReceivers>
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
      </messageReceivers>
      <parameter name="ServiceClass" locked="false">mx.gob.scjn.inventarioAJ.ws.CatalogoSyncImpl
      </parameter>
      <operation name="getCatalogoCiudades" mep="http://www.w3.org/2004/08/wsdl/in-out" />
      <operation name="getCatalogoEstado" mep="http://www.w3.org/2004/08/wsdl/in-out" />
      <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
      <parameter name="SpringBeanName">catalogoSync</parameter>
   </service>
  Â
</serviceGroup>
my application-context.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:beans="http://www.springframework.org/schema/beans"
   xmlns:jee="http://www.springframework.org/schema/jee"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:task="http://www.springframework.org/schema/task"
   xsi:schemaLocation="http://www.springframework.org/schema/beansÂ
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/jee
   http://www.springframework.org/schema/jee/spring-jee.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/task
   http://www.springframework.org/schema/task/spring-task.xsd">
   <context:component-scan base-package="mx.gob.scjn">
   </context:component-scan>
   <beans:bean id="applicationContextProvider"
      class="mx.gob.scjn.inventarioAJ.util.ApplicationContextProvider" />
   <!-- tell spring where to find the beans -->
   <!-- tells Spring to scan the code for injectable beans under the package
      (and all its subpackages) specified. -->
   <!-- It allow @Component, @Service, @Controller, etc.. annotations. -->
   <beans:bean id="catalogoSync"
      class="mx.gob.scjn.inventarioAJ.ws.CatalogoSyncImpl" />
   <!-- Reaco Job -->
   <task:scheduler id="scheduler" pool-size="4" />
   <!-- Scheduler -->
   <task:scheduled-tasks>
      <task:scheduled ref="SincronizaInventarioJob" method="execute"
         cron="${cron.job.SincronizaInventarioJob}" />
   </task:scheduled-tasks>
</beans:beans>
I really can't see why Axis2 cant locate my application-context file and I GUESS that that is the root couse of the error.Greetings.CLS
ADVERTENCIA: Axis2 Can't find Spring's ApplicationContext
may 09, 2016 1:14:53 PM org.apache.axis2.rpc.receivers.RPCMessageReceiver invokeBusinessLogic
GRAVE: Exception occurred while trying to invoke service method null
org.apache.axis2.AxisFault: The SERVICE_OBJECT_SUPPLIER parameter is not specified.
   at org.apache.axis2.receivers.AbstractMessageReceiver.makeNewServiceObject(AbstractMessageReceiver.java:247)
   at org.apache.axis2.receivers.AbstractMessageReceiver.getTheImplementationObject(AbstractMessageReceiver.java:282)
   at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:78)
   at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
   at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
   at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
   at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
   at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Thread.java:745)
My Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.jcp.org/xml/ns/javaee"
   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
   id="WebApp_ID" version="3.1">
   <display-name>inventarioAJWeb</display-name>
   <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>default.html</welcome-file>
      <welcome-file>default.htm</welcome-file>
      <welcome-file>default.jsp</welcome-file>
   </welcome-file-list>
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
         /WEB-INF/application-context.xml
      </param-value>
   </context-param>
   <context-param>
      <param-name>facelets.SKIP_COMMENTS</param-name>
      <param-value>true</param-value>
   </context-param>
   <context-param>
      <param-name>log4j-config-location</param-name>
      <param-value>/WEB-INF/log4j.properties</param-value>
   </context-param>
   <context-param>
      <description>State saving method: 'client' or 'server' (=default). See
         JSF Specification 2.5.2</description>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>client</param-value>
   </context-param>
   <context-param>
      <param-name>primefaces.THEME</param-name>
      <param-value>aristo</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.PROJECT_STAGE</param-name>
      <param-value>Development</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.CONFIG_FILES</param-name>
      <param-value>/WEB-INF/faces-config.xml</param-value>
   </context-param>
   <context-param>
      <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
      <param-value>false</param-value>
   </context-param>
   <context-param>
      <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
      <param-value>resources.application</param-value>
   </context-param>
   <listener>
      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
   </listener>
   <!-- Servlets -->
   <!-- JSF mapping -->
   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <!-- Apache Axis2 web service Servlet -->
   <servlet>
      <display-name>Apache-Axis Servlet</display-name>
      <servlet-name>AxisServlet</servlet-name>
      <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.xhtml</url-pattern>
   </servlet-mapping>
   <!-- Apache Axis2 web service Servlet Mapping -->
   <servlet-mapping>
      <servlet-name>AxisServlet</servlet-name>
      <url-pattern>/services/*</url-pattern>
   </servlet-mapping>
</web-app>
my services.xml:
<serviceGroup>
   <service name="catalogoSync">
      <description>
         Este WS sera utilizado para la sincronización de catálogos.
      </description>
      <messageReceivers>
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
      </messageReceivers>
      <parameter name="ServiceClass" locked="false">mx.gob.scjn.inventarioAJ.ws.CatalogoSyncImpl
      </parameter>
      <operation name="getCatalogoCiudades" mep="http://www.w3.org/2004/08/wsdl/in-out" />
      <operation name="getCatalogoEstado" mep="http://www.w3.org/2004/08/wsdl/in-out" />
      <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
      <parameter name="SpringBeanName">catalogoSync</parameter>
   </service>
  Â
</serviceGroup>
my application-context.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:beans="http://www.springframework.org/schema/beans"
   xmlns:jee="http://www.springframework.org/schema/jee"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:task="http://www.springframework.org/schema/task"
   xsi:schemaLocation="http://www.springframework.org/schema/beansÂ
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/jee
   http://www.springframework.org/schema/jee/spring-jee.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/task
   http://www.springframework.org/schema/task/spring-task.xsd">
   <context:component-scan base-package="mx.gob.scjn">
   </context:component-scan>
   <beans:bean id="applicationContextProvider"
      class="mx.gob.scjn.inventarioAJ.util.ApplicationContextProvider" />
   <!-- tell spring where to find the beans -->
   <!-- tells Spring to scan the code for injectable beans under the package
      (and all its subpackages) specified. -->
   <!-- It allow @Component, @Service, @Controller, etc.. annotations. -->
   <beans:bean id="catalogoSync"
      class="mx.gob.scjn.inventarioAJ.ws.CatalogoSyncImpl" />
   <!-- Reaco Job -->
   <task:scheduler id="scheduler" pool-size="4" />
   <!-- Scheduler -->
   <task:scheduled-tasks>
      <task:scheduled ref="SincronizaInventarioJob" method="execute"
         cron="${cron.job.SincronizaInventarioJob}" />
   </task:scheduled-tasks>
</beans:beans>
I really can't see why Axis2 cant locate my application-context file and I GUESS that that is the root couse of the error.Greetings.CLS