New to Axis2. Using the POJO guide for exposing service found in link:
http://ws.apache.org/axis2/1_5/pojoguide.html
I can see the wsdl in the browser, but cannot see the service. The service
apparaently was not found. Any suggestion will be appreciated.
Following are the steps that I have taken.
Axis2Weather (it is web project containing WebContent)
|
----src
| |
| ----sample.pojo.data
| | |
| | ----Weather.java
| |
| ----sample.pojo.service
| |
| ----WeatherService.java
|
----WebContent
|
----WEB-INF
|
|
----lib (has all jars from Axis2, version 1.5)
|
----services
| |
| ----WeatherService
| |
| ----META-INF
| |
|
----services.xml
|
----web.xml
///////////////////////////
services.xml:
<service name="WeatherService" scope="application">
<description>
Weather POJO Service
</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">
sample.pojo.service.WeatherService
</parameter>
</service>
////////////////////
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
Axis2Weather</display-name>
<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>
<display-name>
Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
</web-app>
//////////////
package sample.pojo.data;
public class Weather {
float temperature;
String forecast;
boolean rain;
float howMuchRain;
public void setTemperature(float temp){
temperature = temp;
}
public float getTemperature(){
return temperature;
}
public void setForecast(String fore){
forecast = fore;
}
public String getForecast(){
return forecast;
}
public void setRain(boolean r){
rain = r;
}
public boolean getRain(){
return rain;
}
public void setHowMuchRain(float howMuch){
howMuchRain = howMuch;
}
public float getHowMuchRain(){
return howMuchRain;
}
}
//////////////
package sample.pojo.service;
import sample.pojo.data.Weather;
public class WeatherService{
Weather weather;
public void setWeather(Weather weather){
this.weather = weather;
}
public Weather getWeather(){
return this.weather;
}
}
/////////////////
The context root of the application is: Axis2Weather
Axis2Weather successfully gets deployed in the application server (WebSphere
in this case) as an EAR file and the Axis2Weather application successfully
gets started in the application server.
But when I enter the URL: http://localhost:9081/Axis2Weather/services , I
get error as:
org.apache.axis2.AxisFault: The service cannot be found for the endpoint
reference (EPR) /Axis2Weather/services/ at
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:65)
at org.apache.axis2.engine.Phase.invoke(Phase.java:334) at
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251) at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160) at
org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:135)
at
org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130)
at
org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:838)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:262)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1101)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:569)
at
When I enter URL: http://localhost:9081/Axis2Weather/services/WeatherService
, I get error as:
AxisEngine E org.apache.axis2.engine.AxisEngine receive The endpoint
reference (EPR) for the Operation not found is
/Axis2Weather/services/WeatherService and the WSA Action = null
org.apache.axis2.AxisFault: The endpoint
reference (EPR) for the Operation not found is
/Axis2Weather/services/WeatherService and the WSA Action = null
at
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:89)
But when I enter URL:
http://localhost:9081/Axis2Weather/services/WeatherService?wsdl , I get wsdl
shown as:
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ax21="http://net.java/xsd"
xmlns:ax24="http://xsd.data.pojo.sample/xsd"
xmlns:ax23="http://service.pojo.sample/xsd"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:ns="http://service.pojo.sample"
xmlns:ns1="http://org.apache.axis2/xsd"
targetNamespace="http://service.pojo.sample">
<wsdl:documentation>WeatherService</wsdl:documentation>
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://xsd.data.pojo.sample/xsd">
<xs:complexType name="Weather">
<xs:sequence>
<xs:element minOccurs="0" name="temperature" nillable="true"
type="xs:float" />
<xs:element minOccurs="0" name="rain" nillable="true" type="xs:boolean" />
<xs:element minOccurs="0" name="forecast" nillable="true" type="xs:string"
/>
<xs:element minOccurs="0" name="howMuchRain" nillable="true"
type="xs:float" />
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:ax22="http://net.java/xsd"
xmlns:ax26="http://service.pojo.sample/xsd" attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://service.pojo.sample">
<xs:import namespace="http://net.java/xsd" />
<xs:import namespace="http://service.pojo.sample/xsd" />
<xs:element name="getWeatherServiceHttpSoap12EndpointAddressResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Exception">
<xs:sequence>
<xs:element minOccurs="0" name="Exception" nillable="true"
type="xs:anyType" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceException">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ServiceException" nillable="true"
type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getWeatherServiceHttpSoap12Endpoint">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="ax21:URL" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getWeatherServiceHttpSoap12EndpointResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true"
type="ax26:WeatherServicePortType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getWeatherServiceHttpSoap11EndpointAddressResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getWeatherServiceHttpSoap11Endpoint">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="ax21:URL" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getWeatherServiceHttpSoap11EndpointResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true"
type="ax26:WeatherServicePortType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://net.java/xsd">
<xs:complexType name="URL">
<xs:sequence>
<xs:element minOccurs="0" name="userInfo" nillable="true" type="xs:string"
/>
<xs:element minOccurs="0" name="path" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="defaultPort" type="xs:int" />
<xs:element minOccurs="0" name="query" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="file" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="host" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="protocol" nillable="true" type="xs:string"
/>
<xs:element minOccurs="0" name="authority" nillable="true"
type="xs:string" />
<xs:element minOccurs="0" name="ref" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="port" type="xs:int" />
<xs:element minOccurs="0" name="content" nillable="true" type="xs:anyType"
/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:ax25="http://xsd.data.pojo.sample/xsd"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://service.pojo.sample/xsd">
<xs:import namespace="http://xsd.data.pojo.sample/xsd" />
<xs:complexType name="WeatherServicePortType">
<xs:sequence>
<xs:element minOccurs="0" name="weather" nillable="true"
type="ax25:Weather" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="getWeatherServiceHttpSoap11EndpointRequest">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap11Endpoint" />
</wsdl:message>
<wsdl:message name="getWeatherServiceHttpSoap11EndpointResponse">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap11EndpointResponse" />
</wsdl:message>
<wsdl:message name="ServiceException">
<wsdl:part name="parameters" element="ns:ServiceException" />
</wsdl:message>
<wsdl:message name="getWeatherServiceHttpSoap11EndpointAddressRequest" />
<wsdl:message name="getWeatherServiceHttpSoap11EndpointAddressResponse">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap11EndpointAddressResponse" />
</wsdl:message>
<wsdl:message name="getWeatherServiceHttpSoap12EndpointRequest">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap12Endpoint" />
</wsdl:message>
<wsdl:message name="getWeatherServiceHttpSoap12EndpointResponse">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap12EndpointResponse" />
</wsdl:message>
<wsdl:message name="getWeatherServiceHttpSoap12EndpointAddressRequest" />
<wsdl:message name="getWeatherServiceHttpSoap12EndpointAddressResponse">
<wsdl:part name="parameters"
element="ns:getWeatherServiceHttpSoap12EndpointAddressResponse" />
</wsdl:message>
<wsdl:portType name="WeatherServicePortType">
<wsdl:operation name="getWeatherServiceHttpSoap11Endpoint">
<wsdl:input message="ns:getWeatherServiceHttpSoap11EndpointRequest"
wsaw:Action="urn:getWeatherServiceHttpSoap11Endpoint" />
<wsdl:output message="ns:getWeatherServiceHttpSoap11EndpointResponse"
wsaw:Action="urn:getWeatherServiceHttpSoap11EndpointResponse" />
<wsdl:fault message="ns:ServiceException" name="ServiceException"
wsaw:Action="urn:getWeatherServiceHttpSoap11EndpointServiceException" />
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap11EndpointAddress">
<wsdl:input message="ns:getWeatherServiceHttpSoap11EndpointAddressRequest"
wsaw:Action="urn:getWeatherServiceHttpSoap11EndpointAddress" />
<wsdl:output
message="ns:getWeatherServiceHttpSoap11EndpointAddressResponse"
wsaw:Action="urn:getWeatherServiceHttpSoap11EndpointAddressResponse" />
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12Endpoint">
<wsdl:input message="ns:getWeatherServiceHttpSoap12EndpointRequest"
wsaw:Action="urn:getWeatherServiceHttpSoap12Endpoint" />
<wsdl:output message="ns:getWeatherServiceHttpSoap12EndpointResponse"
wsaw:Action="urn:getWeatherServiceHttpSoap12EndpointResponse" />
<wsdl:fault message="ns:ServiceException" name="ServiceException"
wsaw:Action="urn:getWeatherServiceHttpSoap12EndpointServiceException" />
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12EndpointAddress">
<wsdl:input message="ns:getWeatherServiceHttpSoap12EndpointAddressRequest"
wsaw:Action="urn:getWeatherServiceHttpSoap12EndpointAddress" />
<wsdl:output
message="ns:getWeatherServiceHttpSoap12EndpointAddressResponse"
wsaw:Action="urn:getWeatherServiceHttpSoap12EndpointAddressResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WeatherServiceSoap11Binding"
type="ns:WeatherServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="getWeatherServiceHttpSoap11Endpoint">
<soap:operation soapAction="urn:getWeatherServiceHttpSoap11Endpoint"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault use="literal" name="ServiceException" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap11EndpointAddress">
<soap:operation
soapAction="urn:getWeatherServiceHttpSoap11EndpointAddress" style="document"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12Endpoint">
<soap:operation soapAction="urn:getWeatherServiceHttpSoap12Endpoint"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault use="literal" name="ServiceException" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12EndpointAddress">
<soap:operation
soapAction="urn:getWeatherServiceHttpSoap12EndpointAddress" style="document"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WeatherServiceSoap12Binding"
type="ns:WeatherServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="getWeatherServiceHttpSoap11Endpoint">
<soap12:operation soapAction="urn:getWeatherServiceHttpSoap11Endpoint"
style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap12:fault use="literal" name="ServiceException" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap11EndpointAddress">
<soap12:operation
soapAction="urn:getWeatherServiceHttpSoap11EndpointAddress" style="document"
/>
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12Endpoint">
<soap12:operation soapAction="urn:getWeatherServiceHttpSoap12Endpoint"
style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap12:fault use="literal" name="ServiceException" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12EndpointAddress">
<soap12:operation
soapAction="urn:getWeatherServiceHttpSoap12EndpointAddress" style="document"
/>
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WeatherServiceHttpBinding"
type="ns:WeatherServicePortType">
<http:binding verb="POST" />
<wsdl:operation name="getWeatherServiceHttpSoap11Endpoint">
<http:operation
location="WeatherService/getWeatherServiceHttpSoap11Endpoint" />
<wsdl:input>
<mime:content type="text/xml" part="getWeatherServiceHttpSoap11Endpoint"
/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="getWeatherServiceHttpSoap11Endpoint"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap11EndpointAddress">
<http:operation
location="WeatherService/getWeatherServiceHttpSoap11EndpointAddress" />
<wsdl:input>
<mime:content type="text/xml"
part="getWeatherServiceHttpSoap11EndpointAddress" />
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml"
part="getWeatherServiceHttpSoap11EndpointAddress" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12Endpoint">
<http:operation
location="WeatherService/getWeatherServiceHttpSoap12Endpoint" />
<wsdl:input>
<mime:content type="text/xml" part="getWeatherServiceHttpSoap12Endpoint"
/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="getWeatherServiceHttpSoap12Endpoint"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getWeatherServiceHttpSoap12EndpointAddress">
<http:operation
location="WeatherService/getWeatherServiceHttpSoap12EndpointAddress" />
<wsdl:input>
<mime:content type="text/xml"
part="getWeatherServiceHttpSoap12EndpointAddress" />
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml"
part="getWeatherServiceHttpSoap12EndpointAddress" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WeatherService">
<wsdl:port name="WeatherServiceHttpSoap11Endpoint"
binding="ns:WeatherServiceSoap11Binding">
<soap:address
location="http://localhost:9081/Axis2Weather/services/WeatherService.WeatherServiceHttpSoap11Endpoint/"
/>
</wsdl:port>
<wsdl:port name="WeatherServiceHttpSoap12Endpoint"
binding="ns:WeatherServiceSoap12Binding">
<soap12:address
location="http://localhost:9081/Axis2Weather/services/WeatherService.WeatherServiceHttpSoap12Endpoint/"
/>
</wsdl:port>
<wsdl:port name="WeatherServiceHttpEndpoint"
binding="ns:WeatherServiceHttpBinding">
<http:address
location="http://localhost:9081/Axis2Weather/services/WeatherService.WeatherServiceHttpEndpoint/"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Any advice on why I cannot see the WeatherService (when the application is
successfully deployed as EAR and app started successfully) will be
appreciated.
--
View this message in context:
http://www.nabble.com/Axis-2-%281.5%29---Unable-to-find-service-for-POJO-tp26012836p26012836.html
Sent from the Axis - User mailing list archive at Nabble.com.