[jboss-user] [JBossWS] - Binding custom Exception field fails
rhcp_1415
do-not-reply at jboss.com
Thu Apr 24 06:40:18 EDT 2008
Hi there,
I'm trying to make a simple hallo World with a parameter and a custom exception that has its own field. Without the extra field in the exception it works fine. Server start up fine but when I call my webservice with the field "naam" filled in with "kaboom" (with this value the exception is thrown) this is what I get:
| 08:48:41,921 ERROR [RequestHandlerImpl] Error processing web service request
|
| org.jboss.ws.WSException: org.jboss.xb.binding.JBossXBRuntimeException: Failed to find read method or field for property 'typeFout' in class nl.havermans.rhcp.boodschappen.webservice.EWebserviceException
|
| at org.jboss.ws.WSException.rethrow(WSException.java:68)
|
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:310)
|
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
|
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
|
| at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
|
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
|
|
The problem is that the property really is in the class nl.havermans.rhcp.boodschappen.webservice.EWebserviceException, I even tried to make the field itself public but it does not help. Does anyone know why this is happening?
Can anyone have a look at this?
| /**
| *
| */
| package nl.havermans.rhcp.boodschappen.webservice;
|
| import java.rmi.RemoteException;
|
| /**
| * @author RHCP
| *
| */
| public interface IHalloWereldService extends java.rmi.Remote {
| public String zegMijHallo(String naam) throws EWebserviceException, RemoteException;
| }
|
| /**
| *
| */
| package nl.havermans.rhcp.boodschappen.webservice;
|
| import java.rmi.RemoteException;
|
| import org.apache.log4j.Logger;
|
| /**
| * @author RHCP
| *
| */
| public class HalloWereldService implements IHalloWereldService {
| Logger _log = Logger.getLogger(HalloWereldService.class);
|
| /**
| * @throws EWebserviceException
| * @see nl.havermans.rhcp.boodschappen.webservice.IHalloWereldService#zegMijHallo(java.lang.String)
| */
| public String zegMijHallo(String naam) throws RemoteException, EWebserviceException {
| _log.info("Start zegMijHallo: " + naam);
| String antwoord = "Welkom bij mijn webservice";
| if (naam != null) {
| if (naam.equals("kaboom")) {
| throw new EWebserviceException("Exceptie test", "functioneel");
| }
| antwoord = antwoord + ": " + naam;
| }
|
| _log.info("Einde zegMijHallo");
| return antwoord;
| }
| }
|
| /**
| *
| */
| package nl.havermans.rhcp.boodschappen.webservice;
|
| /**
| * @author RHCP
| *
| */
| public class EWebserviceException extends Exception {
| /**
| *
| */
| private static final long serialVersionUID = -4539401858795964596L;
| public String typeFout = "onbekend";
|
| /**
| *
| */
| public EWebserviceException() {
| super();
| }
|
| /**
| * @param p_message
| * @param p_cause
| */
| public EWebserviceException(String p_message, Throwable p_cause) {
| super(p_message, p_cause);
| }
|
| /**
| * @param p_message
| */
| public EWebserviceException(String p_message) {
| super(p_message);
| }
|
| /**
| * @param p_message boodschap
| * @param p_typeFout type fout
| */
| public EWebserviceException(String message, String typeFout) {
| super(message);
| this.typeFout = typeFout;
| }
|
|
| /**
| * @param p_cause
| */
| public EWebserviceException(Throwable p_cause) {
| super(p_cause);
| }
|
| /**
| * @return the typeFout
| */
| public String getTypeFout() {
| return typeFout;
| }
|
| /**
| * @param p_typeFout the typeFout to set
| */
| public void setTypeFout(String typeFout) {
| this.typeFout = typeFout;
| }
|
| }
|
| <?xml version="1.0" encoding="UTF-8"?>
| <definitions
| name="HalloWereldWS"
| targetNamespace="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"
| xmlns:hllwrld="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"
| xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"
| xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| xmlns="http://schemas.xmlsoap.org/wsdl/"
| >
| <types>
| <xsd:schema
| targetNamespace="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService">
|
| <xsd:complexType name="EWebserviceException">
| <xsd:sequence>
| <xsd:element name="typeFout" nillable="true" type="xsd:string"/>
| </xsd:sequence>
| </xsd:complexType>
| <xsd:element name="EWebserviceException" type="hllwrld:EWebserviceException"/>
| </xsd:schema>
| </types>
| <message name="GetHalloWereldRequest">
| <part name="naam" type="xsd:string"/>
| </message>
| <message name="GetHalloWereldResponse">
| <part name="antwoord" type="xsd:string"/>
| </message>
| <message name="EWebserviceException">
| <part name="EWebserviceException" element="hllwrld:EWebserviceException"></part>
| </message>
|
| <portType name="HalloWereld">
| <operation name="zegMijHallo">
| <input message="hllwrld:GetHalloWereldRequest"/>
| <output message="hllwrld:GetHalloWereldResponse"/>
| <fault name="EWebserviceException" message="hllwrld:EWebserviceException"></fault>
| </operation>
| </portType>
|
| <binding name="HalloWereld_binding" type="hllwrld:HalloWereld">
| <soapbind:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
| <operation name="zegMijHallo">
| <soapbind:operation style="rpc" soapAction="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService/ZegMijHallo"/>
| <input>
| <soapbind:body use="literal" namespace="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"/>
| </input>
| <output>
| <soapbind:body use="literal" namespace="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"/>
| </output>
| <fault name="EWebserviceException">
| <soapbind:fault name="EWebserviceException" use="literal"/>
| </fault>
| </operation>
| </binding>
|
| <service name="HalloWereldService">
| <port name="HalloWereld_Port" binding="hllwrld:HalloWereld_binding">
| <soapbind:address location="http://localhost:8080/BoodschappenServiceWeb/myJSE/HalloWereld"/>
| </port>
| </service>
| </definitions>
|
| <?xml version="1.0" encoding="UTF-8"?>
| <java-wsdl-mapping
| xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xmlns:hllwrld="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
| http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd" version="1.1"
| >
| <package-mapping>
| <package-type>nl.havermans.rhcp.boodschappen.webservice</package-type>
| <namespaceURI>http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService</namespaceURI>
| </package-mapping>
| <java-xml-type-mapping>
| <java-type>nl.havermans.rhcp.boodschappen.webservice.EWebserviceException</java-type>
| <root-type-qname>hllwrld:EWebserviceException</root-type-qname>
| <qname-scope>complexType</qname-scope>
| </java-xml-type-mapping>
| <exception-mapping>
| <exception-type>nl.havermans.rhcp.boodschappen.webservice.EWebserviceException</exception-type>
| <wsdl-message>hllwrld:EWebserviceException</wsdl-message>
| </exception-mapping>
| <service-interface-mapping>
| <service-interface>nl.havermans.rhcp.boodschappen.webservice.HalloWereldService</service-interface>
| <wsdl-service-name>hllwrld:HalloWereldService</wsdl-service-name>
| <port-mapping>
| <port-name>hllwrld:HalloWereld_Port</port-name>
| <java-port-name>hllwrld:HalloWereld_Port</java-port-name>
| </port-mapping>
| </service-interface-mapping>
| <service-endpoint-interface-mapping>
| <service-endpoint-interface>nl.havermans.rhcp.boodschappen.webservice.IHalloWereldService</service-endpoint-interface>
| <wsdl-port-type>hllwrld:HalloWereld</wsdl-port-type>
| <wsdl-binding>hllwrld:HalloWereld_binding</wsdl-binding>
| <service-endpoint-method-mapping>
| <java-method-name>zegMijHallo</java-method-name>
| <wsdl-operation>zegMijHallo</wsdl-operation>
| <method-param-parts-mapping>
| <param-position>0</param-position>
| <param-type>java.lang.String</param-type>
| <wsdl-message-mapping>
| <wsdl-message>hllwrld:GetHalloWereldRequest</wsdl-message>
| <wsdl-message-part-name>naam</wsdl-message-part-name>
| <parameter-mode>IN</parameter-mode>
| </wsdl-message-mapping>
| </method-param-parts-mapping>
| <wsdl-return-value-mapping>
| <method-return-value>java.lang.String</method-return-value>
| <wsdl-message>hllwrld:GetHalloWereldResponse</wsdl-message>
| <wsdl-message-part-name>antwoord</wsdl-message-part-name>
| </wsdl-return-value-mapping>
| </service-endpoint-method-mapping>
| </service-endpoint-interface-mapping>
| </java-wsdl-mapping>
|
| <?xml version="1.0" encoding="UTF-8"?>
| <webservices xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xmlns:hllwrld="http://webservice.boodschappen.rhcp.havermans.nl/HalloWereldService"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
| http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd" version="1.1">
| <webservice-description>
| <webservice-description-name>HalloWereld</webservice-description-name>
| <wsdl-file>WEB-INF/wsdl/HalloWereld.wsdl</wsdl-file>
| <jaxrpc-mapping-file>WEB-INF/HalloWereld-rpc-mapping.xml</jaxrpc-mapping-file>
| <port-component>
| <port-component-name>HalloWereldJSE</port-component-name>
| <wsdl-port>hllwrld:HalloWereld_Port</wsdl-port>
| <service-endpoint-interface>nl.havermans.rhcp.boodschappen.webservice.IHalloWereldService</service-endpoint-interface>
| <service-impl-bean>
| <servlet-link>HalloWereldJSE</servlet-link>
| </service-impl-bean>
| </port-component>
| </webservice-description>
| </webservices>
|
| <?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>BoodschappenServiceWeb</display-name>
| <servlet>
| <display-name>Apache-Axis Servlet</display-name>
| <servlet-name>AxisServlet</servlet-name>
| <servlet-class>
| org.apache.axis.transport.http.AxisServlet
| </servlet-class>
| </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>
| <display-name>Hallo Wereld webservice oefening</display-name>
| <servlet-name>HalloWereldJSE</servlet-name>
| <servlet-class>nl.havermans.rhcp.boodschappen.webservice.HalloWereldService</servlet-class>
| <load-on-startup>101</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>
| <servlet-mapping>
| <servlet-name>HalloWereldJSE</servlet-name>
| <url-pattern>/myJSE/HalloWereld</url-pattern>
| </servlet-mapping>
| <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>
| </web-app>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4146457#4146457
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4146457
More information about the jboss-user
mailing list