axisService.exposeClass( String serviceName, String className );
And, I spent the last two days hacking with axis up to get this working. I now have an avalon service that embeds axis, exposes it to the Axis servlets (through the plexus avalon container: http://plexus.werken.com), and allows me to expose classes easily. I am still working out quite a few things, but if you want we can collaborate or you can just look at the code/steal it. It has an apache license (although I think it is missing from the top of the source files at the moment). The avalon service is located here:
http://cvs.werken.com/viewcvs.cgi/plexus-components/axis/?cvsroot=plexus
Currently, I have to resolve the following issues: - Set namespaces correctly - Get serialization working for complex objects - Clean it up.
But, it does show how to provide classes through your own means to Axis (see AvalonProvider).
Also, check out the jboss.net project for info on how to embed axis. And there are a couple axis tests that show how use LocalTransport which might be helpful for you also. test.soap12.TestRPC comes to mind. You can also look at the tests that I have in cvs to see how my service is used. I will write more docs when I get everything working.
Cheers,
Dan Diephouse
Sean Leblanc wrote:
Okay, thanks. Maybe I'm being dense, but how can I have the Axis that is deployed in the servlet engine communicate with my app? Or do I place my whole app into Tomcat's servlet engine. I'm familiar with Tomcat, but just trying to get my head around the web services aspect (so far, I've only written a client using Axis).
Here's what I need to happen:
1. Perpetually running app (already written), or at least running whenever Tomcat is up. 2. Outside client sends soap requests to it - it calls threadable classes internally in this app...all running under the same instance to save on RAM, and avoid issues that would come up if we had many instances running.
You suggest running IIS w/ Tomcat, and I understand how to get these two working together, but just for the JSP/Servlet stuff. If I want to use Axis with Tomcat and my app, I'd deploy services to Tomcat, and then...that's where I get lost. J I'm unsure where the communication happens so that my app can see the requests and Do The Right Thing (tm).
TIA,
Sean
P.S. I apologize to all you folks using text-based mailers. I'm using Outlook here at work, and it seems to pretty much force me into top-posting. Sorry 'bout that.
-----Original Message----- *From:* Anne Thomas Manes [mailto:[EMAIL PROTECTED] *Sent:* Wednesday, March 12, 2003 9:56 AM *To:* [EMAIL PROTECTED] *Subject:* RE: Standalone server questions
You would need to deploy a servlet engine in IIS (e.g., Tomcat), then you can deploy Axis into that servlet engine.
gSOAP is a WSDL compiler for C++. IT generates an embeddable SOAP runtime system for your service app (presumably written in C++).
Anne
-----Original Message----- *From:* Sean Leblanc [mailto:[EMAIL PROTECTED] *Sent:* Wednesday, March 12, 2003 11:49 AM *To:* '[EMAIL PROTECTED]' *Subject:* RE: Standalone server questions
Okay, let's say I have to use IIS (which is true). Can I still use Java w/ AXIS and have it service the SOAP requests? The aim is to have only one instance of this app running which manages all the incoming requests.
Also, this gSOAP, how does it interact with an app that would be actually fulfilling the SOAP request?
Thanks,
-----Original Message----- *From:* Doug Haigh [mailto:[EMAIL PROTECTED] *Sent:* Wednesday, March 12, 2003 9:43 AM *To:* [EMAIL PROTECTED] *Subject:* RE: Standalone server questions
If you want to make a simple SOAP server using C++, try gSOAP. It does not need a web server and is free.
Axis as a server is more suited for environments where Apache is running. You can use Axis (Java) or gSOAP (C++) as a standalone client.
-----Original Message----- *From:* Sean Leblanc [mailto:[EMAIL PROTECTED] *Sent:* Wednesday, March 12, 2003 11:34 AM *To:* '[EMAIL PROTECTED]' *Subject:* Standalone server questions
I have some questions about adding Axis to an existing
application. I want to be able to use web services to call
methods on this application. That way, I only have one instance
of the app running.
Any ideas on the best path to take? I was looking at the "addr" sample, and I see it utilizes SimpleAxisServer. However, SimpleAxisServer says this in the API: "This is a simple implementation of an HTTP server for processing SOAP requests via Apache's xml-axis. This is not intended for production use. Its intended uses are for demos, debugging, and performance profiling."
Are there other, better classes to use for this, then?
TIA,
Sean LeBlanc
This e-mail, including attachments, is intended for the person(s) or company named and may contain confidential and/or legally privileged information. Unauthorized disclosure, copying or use of this information may be unlawful and is prohibited. If you are not the intended recipient, please delete this message and notify the sender.
This e-mail, including attachments, is intended for the person(s) or company named and may contain confidential and/or legally privileged information. Unauthorized disclosure, copying or use of this information may be unlawful and is prohibited. If you are not the intended recipient, please delete this message and notify the sender.
This e-mail, including attachments, is intended for the person(s) or company named and may contain confidential and/or legally privileged information. Unauthorized disclosure, copying or use of this information may be unlawful and is prohibited. If you are not the intended recipient, please delete this message and notify the sender.