[JBoss Web Services Users] - custom fault mapping with jax-rpcâ
by newmanw10
Sorry posted this in the CXF forum, this is probably a better place. Not sure how to remove the CXF post on this subject.
I am currently working on an old legacy system that is using jax-rpc. I would like to add in some custom faults such that I can inform clients better. I.E. I can throw custom exceptions/faults such that the user can catch them to determine the best course of action. However using JBoss I have not been able to get this to work. The main problem is that in the SOAP message that comes back there is no tag. This tag is how the exception would get deserialized on the client, so without that tag the client will have no idea what exception/fault was thrown.
Has anyone every gotten a custom fault to work with JBoss? My guess is no as I have not been able to find out anything on this problem.
I am running 4.2.3.GA and out of the box is has jbossws-native-3.0.1, I also installed jbossws-native-3.1.1.GA to see if it fixed the problem but I was still out of luck. Please help I am all out of ideas! Below are some code snippets to show what I am talking about. If you need more please let me know.
I took a simple example jax-rpc HelloWord service from the java tutorial section and added a fault to the wsdl.
Here is a snippet:
| <portType name="HelloIF">
| <operation name="sayHello" parameterOrder="String_1">
| <input message="tns:HelloIF_sayHello"/>
| <output message="tns:HelloIF_sayHelloResponse"/>
| <fault name="fault" message="tns:sayHelloException"></fault>
| </operation>
| </portType>
|
I generated the jax-rpc classes:
Here is the fault/exception generated:
| public class SayHelloException extends java.lang.Exception {
| private java.lang.String message;
|
|
| public SayHelloException(java.lang.String message) {
| super(message);
| this.message = message;
| }
|
| public java.lang.String getMessage() {
| return message;
| }
| }
|
Here is the endpoint interface:
| public interface HelloIF extends java.rmi.Remote {
| public java.lang.String sayHello(boolean string_1) throws
| samples.webservices.jaxrpc.simple.SayHelloException, java.rmi.RemoteException;
| }
|
I also creating the jax-rpc mapping file and deployed with the war in the web-inf directory as well as my webservices.xml and web.xml.
At this point I am not sure why jboss is not creating the tag in the SOAP message that gets sent back to the server.
Here is how I throw the custom exception on the server:
| throw new SayHelloException("Throwing custom exception/fault from WS");
|
Here is my client:
| try {
| Stub stub = (Stub) port;
| stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/hello/simple");
| String result = port.sayHello(true);
| System.out.println(result);
| } catch (SayHelloException ex) {
| System.out.println("PASS! caught a custom exception");
| } catch (RemoteException ex) {
| } catch (Exception ex) {
| System.out.println("FAIL! caught a Exception");
| }
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4263201#4263201
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4263201
15 years, 2 months
[JBoss Web Services Users] - Server was unable to process request. ---> Object reference
by fagnermoura
im using jboss 4.2.3 with Native stack for jbossws.
calling the web service, im receiving this exception:
javax.xml.ws.soap.SOAPFaultException: Server was unable to process request. ---> Object reference not set to an instance of an object.
##############
Method being called
##############
@WebMethod(operationName = "InsertOrder", action = "http://tempuri.org/InsertOrder")
@WebResult(name = "InsertOrderResult", targetNamespace = "http://tempuri.org/")
@RequestWrapper(localName = "InsertOrder", targetNamespace = "http://tempuri.org/", className = "org.tempuri.InsertOrder")
@ResponseWrapper(localName = "InsertOrderResponse", targetNamespace = "http://tempuri.org/", className = "org.tempuri.InsertOrderResponse")
public RETPEDIDO insertOrder(@WebParam(name = "_pedido", targetNamespace = "http://tempuri.org/") PedidoItens pedido);
Other services works fine, but this method that return complexType not.
I just try with soap 1.1 and soap 1.2, but dont work.
Through my swing client, i can to call it. (i include the client dir, from jboss, in the classpath)
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4263194#4263194
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4263194
15 years, 2 months
[JCA] - Re: Fungal RADeployer not handling empty ra.xml property val
by jesper.pedersen
Thank you for the report !
It was actually JBJCA-204, JBJCA-205 and JBJCA-206 that made the deployment fail. These issues are now fixed.
Something for our deployment verifier once we get started on that task (JBJCA-201).
I will invite you to get involved in the embedded scenario. Currently the setup allows to do unit testing easy, but the whole area needs more work:
* Distribution
Can we do a split of JAR files - one for the application classloader; and the rest for a classloader in the application where the container is embedded
* Documentation
Provide complete documentation on how to setup the embedded environment including a full code example with build scripts.
* Use-cases
What are the real-world use-cases for the embedded distribution, can we do something to make it easier to integrate
So feel free to speak up on these matters - or even contribute patches :)
Hope to see you in the JCA Developer forum !
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4263193#4263193
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4263193
15 years, 2 months