[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jboss-user
Subject:    AW: AW: [JBoss-user] How to throw AxisFault in JBoss.net?
From:       "Jung , Dr. Christoph" <christoph.jung () infor ! de>
Date:       2003-01-30 17:25:02
[Download RAW message or body]

Jonas,

I´m not sure what I did there, but there should be some (hmm, outdated) code
in jboss.net that implements
a client-side java.lang.reflect.InvocationHandler for transparently calling
remote web services through
ordinary remote interfaces/dynamic proxies. 

It may as well be that I left exception handling out of the game.

This approach is outdated, because the best way, IMHO, is to take the
server-generated wsdl and pre-generate client stubs using the wsdl2java
toolkit. They should have some exception support there ready to remap the
AxisFault to 
ordinary java exceptions, shouldn´t they? Classname is there, message is
there, maybe not the stack trace.

If they do not do that, parsing the AxisFault string is still ok, IMHO,
inside the generic proxy or the generated client stub, because then your
application still is clean from those "dirty hacks" and you can change that
code whenever axis changes just by tweaking the proxy code or the code
generator. In that case, would you volunteer implementing that when I
support you in finding the right place in jboss.net to place it?

Best,
CGJ


-----Ursprüngliche Nachricht-----
Von: Jonas Engman [mailto:jonas.engman@educ.umu.se] 
Gesendet: Donnerstag, 30. Januar 2003 15:55
An: 'jboss-user@lists.sourceforge.net'
Betreff: Re: AW: [JBoss-user] How to throw AxisFault in JBoss.net?


Thank you for answer and it's probably best not to throw any custom
AxisFault inside a bean. If I create a CustomApplicationException that
inherits from for example java.lang.Exception and throw that from the
session bean it's all being wrapped up inside a AxisFault that contains the
full classname of the exception followed by the error-message as the
faultMessage. The errorCode of the message is:

xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.userException

The problem, as I see it, is that is should somehow be examine the
exception/fault on the client-side. If a do a try/catch statement like

try {
} catch (AxisFault af) {
		
}

it's possible to catch the exception but how am I supposed to tell different
server-exceptions apart? The only unique identifier I have is the
faultMessage and I don't think parsing that string is convenient. Shouldn't
I be able to somehow set the faultCode? Or how should the client handle
different faults?

Thanks again
/Jonas

On Thu, 2003-01-30 at 14:05, Jung , Dr. Christoph wrote:
> The custom exception that you throw should be ideally mapped by 
> axis/jboss.net into the soapfault. (Your bean should not know whether 
> it is published as a web-service).
> 
> What if you declare and throw a CustomApplicationException? How does 
> the returned soap-message look like?
> 
> If I remember right, axis will include the stack trace into the detail 
> section of a soap-fault ...
> 
> AxisFault is the axis-internal exception if something goes wrong in 
> the web service engine (not the application), therefore it has the 
> same status as a java.rmi.ServerException, java.rmi.RemoteException 
> ... But that is used only outside the application in the container.
> 
> 
> CGJ
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Jonas Engman [mailto:jonas.engman@educ.umu.se]
> Gesendet: Donnerstag, 30. Januar 2003 11:44
> An: 'jboss-user@lists.sourceforge.net'
> Betreff: RE: [JBoss-user] How to throw AxisFault in JBoss.net?
> 
> 
> Thanks for your reply but AxisFault is a checked exception. It 
> inherits from java.rmi.RemoteException. The point is that JBoss.net 
> should be able to report faults from the EJB-tier to the client-side 
> and to wrap the fault inside another fault doesn't make any sense.
> 
> Jonas
> 
> 
> On Wed, 2003-01-29 at 22:54, JD Brennan wrote:
> > AxisFault is probably unchecked so it gets
> > wrapped.  I bet the spec says that only
> > checked exceptions have to get passed back
> > intact.
> > 
> > You could wrap AxisFault in a checked exception,
> > maybe...
> > 
> > JD
> > 
> > -----Original Message-----
> > From: Jonas Engman [mailto:jonas.engman@educ.umu.se]
> > Sent: Wednesday, January 29, 2003 1:21 PM
> > To: jboss-user@lists.sourceforge.net
> > Subject: [JBoss-user] How to throw AxisFault in JBoss.net?
> > 
> > 
> > I'm using JBoss 3.2beta1/JBoss.net and I'm trying to throw an
> > AxisFault from a SessionBean but the exception seems somehow be 
> > wrapped inside a javax.ejb.EJBException.
> > 
> > I'm throwing the fault using
> > 
> > throw new AxisFault("a fault has occurred");
> > 
> > but the faultString that appears on the client-side is
> > "javax.ejb.EJBException: null; CausedByException is: a fault has
> > occurred".
> > 
> > A closer look at the <detail>-body using TCPMon shows that the it
> > contains the full stacktrace followed by the original faultString but 
> > it's all wrapped inside the <detail>-tag.
> > 
> > The same thing goes for the original faultCode, faultActor and
> > faultDetail.
> > 
> > Is it somehow possible to throw an AxisFault that doesn't get 
> > wrapped
> > inside a SOAPFault that contains the javax.ejb.EJBException?
> > 
> > Without the ability to throw a user-defined AxisFault I don't see 
> > how
> > a fault should be reported to the client-side.
> > 
> > Thanks
> > Jonas
> > 
> > 
> > 
> > 
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > JBoss-user mailing list
> > JBoss-user@lists.sourceforge.net 
> > https://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! 
> http://www.vasoftware.com 
> _______________________________________________
> JBoss-user mailing list
> JBoss-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> ###########################################
> 
> This message has been scanned by F-Secure Anti-Virus for Microsoft 
> Exchange. For more information, connect to http://www.F-Secure.com/
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld 
> http://www.vasoftware..com 
> _______________________________________________
> JBoss-user mailing list
> JBoss-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jboss-user
-- 
Jonas Engman <jonas.engman@educ.umu.se>



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com _______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld http://www.vasoftware.com
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic