Re: Stateful web services.
Tom Jordahl wrote: Clay, This is great. Do you think you could check out the current Axis HTML docs and see if you can put together a patch that would integrate this in to it? Your code could just be new files in the samples directory. what about adding it to the wiki? http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages This is a great place for docs as anyone can add stuff, and it can be kept up to date. The trouble with docs-in-the-download is that nearly everyone is guaranteed to have out of date content.
Re: java.util.List and 1.1.RC2
Keith Hatton wrote: For fromArray(), you mean this? java.util.Arrays.asList(Object[]) -Original Message- If you go return (Foo)list.toArray(new Foo[0]); You can turn a list to an array in a snap. A fromArray() would be nice to match it. you learn something new every day. Thanks
Re: java.util.List and 1.1.RC2
Brain, Jim wrote: Does anyone know if: Bugzilla Bug 8435 [xsd:list] WSDL2Java doesn't handle schema list enumerations if its open, its probably open; you can always write a test to make sure. Note that is the special case of a list enum, not a simple list. The way .NET serialises a bitfield enum with things like foo=1 bar=2 and a value of foo | bar is to pump out foo bar/ which axis doesnt handle. These are not java lists, which you seem to be talking about has been fixed. I don't know how current Bugzilla is, though I concerned it is, as this seems to preclude the use of AXIS for our project (makes heavy use of Lists) On the contrary, you have an opportunity to customise axis to meet your needs, and contribute something back to the community.
Re: [java.util.List and 1.1.RC2]
Mitch Gitman wrote: Jim, There seem to be two separate issues here. The one (which bug 8435 addresses) is how to emulate an enumeration type, which of course is not natively supported in Java. I could have sworn recently I saw (maybe on this list) a roundabout example how to code a Java class that Axis would recognize as an enumeration. The class made use of public constants together with getters/setters. It would be helpful if bug 8435s text was amended with this example. no, this is a special case of bitfield enums that axis doesnt handle yet.
Re: java.util.List and 1.1.RC2
Mitch Gitman wrote: Right, refer to the Forgive me... message which I sent out five minutes later when I realized this. yeah, I caught that I'm still wondering about the apparent existing support for java.util.List and the like. It seems to me that Java2WSDL should generate an exception when it comes across a collection class that stores java.lang.Object instances. That is one thing wrong with collections; you cannot state in advance their type, and the thing at the far end cannot deal with arbitrary java objects. If you go return (Foo)list.toArray(new Foo[0]); You can turn a list to an array in a snap. A fromArray() would be nice to match it. However, there is meant to be something in soap where you do say you are returning an Object and the type is passed in the envelope at run time. I dont know the exact details...
Re: java.util.List and 1.1.RC2
Brain, Jim wrote: I know, and I thought of that. Unfortunately, I need to expose 296 service classes, containing 5000 references to List, and I have a program that is creating web service wrappers for all the classes (the original classes combined data and access logic, which had to split in half to work in the web service world. The program I wrote can be applied to any arbitrary class, though, uses reflection, and I am planning on cleaning it up and offering it). Programmatically, I can't determine the data type of a List, so I have to replace with Object[], which isn't much better (although AXIS WSDL code seems to like that) You cant add xdoclet metadata to state the type of lists? I really miss typed datastructures, its the main bit of C++ that I still miss, even if its templating was awful compared to that of the polymorphic type inference features of Standard ML. I guess porting to the generics compiler is out too, huh :) That's OK, axis cant handle that iether. It seems to me that if Axis handles Object[] then it should be able to serialize List, at the very least by going List.toArray() returning the object array. typing would be a nice extra, with a configurable in the WSDD declarations that stated the java class in the list. You sound like you are doing a major undertaking there. I wish you well -you could probably derive an interesting paper or two from the experience. I'll point you at my making web-services-that-work paper http://www.iseran.com/Steve/papers/wstw/ which may be of interest -steve
Re: Turning off ?wsdl feature
I've thought of (in the axis 1.2 timeframe) letting you specify a WsdlGenerator, a class that generates wsdl for an endpoint. The base impls. would be 'return a resource' and 'make one from introspection', but I'd envisage smarter things like running the resource through velocity to expand templates. for now, jsut turn ?wsdl off (point to an empty resource) and serve up wsdl in some other manner, off a different url - Original Message - From: Gurkan, Ozzie (MAN-Corporate) [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 13:39 Subject: RE: Turning off ?wsdl feature Short of writing a filter to intercept the ?wsdl querystring, I am not sure how I trap that request in the web.xml file. Currently, the web.xml has an entry for /axis/* for all services to be handled by the AxisServlet. How would I intercept something like /axis/*?wsdl? -Original Message- From: Mike Burati [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 4:37 PM To: '[EMAIL PROTECTED]' Subject: RE: Turning off ?wsdl feature Use that feature to point it to a resource in your WAR (defined by web.xml) which is a servlet or JSP controller that dispatches to the client-specific actual WSDL based on which client is making the request? -Original Message- From: Gurkan, Ozzie (MAN-Corporate) [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 4:28 PM To: '[EMAIL PROTECTED]' Subject: RE: Turning off ?wsdl feature That works great for only one, but I want to be able to select different WSDL files, not just one. I guess you could conceivably have different service urls for each client, but that gets ugly fast. -Original Message- From: Kellogg, Richard [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 4:23 PM To: [EMAIL PROTECTED] Subject: RE: Turning off ?wsdl feature Try the following article: http://www.fawcette.com/javapro/2003_02/online/WSDL_kjones_02_27_03/default_ pf.asp http://www.fawcette.com/javapro/2003_02/online/WSDL_kjones_02_27_03/default _pf.asp -Original Message- From: Gurkan, Ozzie (MAN-Corporate) [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 4:18 PM To: '[EMAIL PROTECTED]' Subject: Turning off ?wsdl feature Is there a way to limit access to the ?wsdl feature or turn it off completely? I need to be able customize the WSDL file based on the client, so I don't want it readily available to all clients. Thanks, Ozzie
Re: Turning off ?wsdl feature
- Original Message - From: Mike Burati [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 13:44 Subject: RE: Turning off ?wsdl feature You lost me - not sure why you'd want it to be /axis*?wsdl... The article describes how in the WSDD deployment descriptor, you would go about changing the URL used for that service, for retrieving WSDL. That URL can be a resource in your WAR - it does not have to be under /axis/* - you could have it be /myservice or similar (I believe, I haven't tried it, just read the article). Then you in your web.xml could say that /myservice requests should go to a servlet that you wrote yourself or to a JSP page, and then in that servlet or JSP, you could dispatch to the right WSDL file for the client (eg, if you wanted each client to have a different set of documentation elements in the WSDL)... I dont think that would work. Because I think it loads a class resource, not a servlet resource.
Re: java.net.ConnectException: Connection refused: connect
you should be using forward / in urls and things; the backslash is a windows only hack. Hans Russo resowe wrote: Maybe you are right but the file Zeitansageservislocator was generated by WSDL2Java. Indeed there was a problem: WSDL2Java was not able to write the string Zeitansage_Service_address , see the listing bellow, correctly. I had to edtit the string Zeitansage_Service_address. It was necessary to write two slashes for a slash to be able to compile Zeitansageservislocator with eclipse or javac without error. Maybe there anything wrong now. Thanks in advance Hans /** * ZeitansageServiceLocator.java * * This file was auto-generated from WSDL * by the Apache Axis WSDL2Java emitter. */ package kapitel8.zeitansage_wsdl; public class ZeitansageServiceLocator extends org.apache.axis.client.Service implements kapitel8.zeitansage_wsdl.ZeitansageService { // Use to get a proxy class for Zeitansage_Service private final java.lang.String Zeitansage_Service_address = http:localhost:8080\\axis\\services\\Zeitansage_Service; public java.lang.String getZeitansage_ServiceAddress() { return Zeitansage_Service_address; }
Re: proxied and non-proxied web services
Anuj Agrawal wrote: Also, should i be including the System.setProperty(proxySet, true); line? I've found that without this line, things still appear to work. that's for java1.x only, so not an issue for Axis.
Re: which parser should we use?
Jue (Jacky) Shu wrote: hi all, there are 3 xml parsers. one is from jdk1.4.1 rt.jar, that's 'crimson' another two are xercesImpl.jar and xmlParserAPIs.jar. that's xerces; one jar is the interface, the other the implementation which parser should we use in axis? xerces
Re: Axis 1.1 and WS-Interoperability
Vincent Carpentier (LMC) wrote: Axis 1.1 and WS-Interoperability Hi everybody, Just had a quick question. Will Axis 1.1 respect WS-I basic profile? only if it respects us :) Axis 1.1 will *not* respect the profile, and you cannot expect it to as it is (a) a draft and (b) not an official standard by a standards body like the IETF or the W3C. Nor, until there is a test suite, can compliance be tested and asserted with any rigour. Future versions of Axis will fully support SOAP1.2, and no doubt strive to come close to WS-I basic, but if you want 100% compliance then you will have to roll up your sleeves and contribute code. Axis people do look at the spec, and we also discuss things on SoapBuilders. The latter is where interop is forged. WS-I basic is, well, political: someone dictates that doc/lit is the future, that WS-Attachments (DIME not SwA) is the way to attach files, without the same open membership and voting that the W3C offers. So wherever W3C specs and WS-I specs come in to conflict, to date, we follow the W3C. -steve
Re: How to return HTTP 204 on Document perform()?
Toshiyuki Kimura wrote: Hi Steve, [Steve Loughran] wrote; | I have a misconfigured app that causes axis to generate a 204, but the axis | client doesnt handle it (filed bugrep). I dont know what the WS-I stance is | on it, as the basic profile says nothing on the subject. The HTTP 204 (OK) is quite the HTTP specific matter. So, the JAX-RPC doesn't mention it, or rather, the spec says The JAX-RPC specification does not specify how a JAX-RPC runtime system implements one-way RPC mode in terms of the underlying protocol and transport. However, the spec gives us the directions how the runtime implements one-way RPC mode with the general words as well. The key points of suggestions are three things; 1) The runtime provides 'invokeOneWay' method for one-way RPC mode. 2) The client *MAY* handle the HTTP response with either success or error code (but with no entity-body content). 3) The JAX-RPC client runtime system *MAY* achieve non-blocking behavior by pipelining multiple HTTP requests without waiting for responses. Please pay attention to the word of 'MAY' of 2) and 3), it means that the description is a case-by-case approach. And the current impl of AXIS might have chosen '3)' as the direction. The described above is just for the client side point of view. In this matter, we have to think it over with reviewing two specifications, HTTP and JAX-RPC. I'd like to continue this thread on your bugrep; Bug#18024, if there're no problems with you. yes, lets do that. WS-I basic covers the 'accepted' response (202) as its way of saying no response likely. I've dropped the spec team a note, but they tend not reply personally. SoapBuilders next.
Re: Axis Supporting different parsers?
Sochea Meas (LMC) wrote: Axis Supporting different parsers? Hi all! Is Axis capable of supporting different parsers beside to Xerces? (eg. Xalan, SAX, Cocoon). 1. Xalan isnt an XML parser, its an XSLT engine 2. SAX isnt an XML parser, its an XML API (that axis uses) 3. Cocoon is an XML parser, its an XML processing system But other than the fact your examples were all slightly off, the answer is 'yes. but it mainly gets tested on Xerces'. Other parsers can cause trouble (as XSD is trouble), and if you want to fix the problems you will be left on your own to do it.
Re: newbie..error when trying to run happyaxis.jsp
Ravi. you have clashing XML parsers. find the one you dont need, and delete, take it of your classpath, or whatever. Larry wrote: I also have axis running on a Win2000 machine. I just loaded the windows binary release from Jakarta and had no issues at all. Larry --- On Mon 03/24, ravi chandra [EMAIL PROTECTED] wrote: From: ravi chandra [mailto: [EMAIL PROTECTED] To: [EMAIL PROTECTED], [EMAIL PROTECTED] Date: Mon, 24 Mar 2003 12:06:48 -0800 (PST) Subject: newbie..error when trying to run happyaxis.jsp Hi Larry!br I am working on Windows XP.I installed the .exebrversion of the Tomcat. I am not sure if there is anybrproblem it. Do u know if there is a problem with it orbrwith tomcat running on Win XP. Or is there a anotherbralternative for this. I have to resolve this as soonbras possible. I already spent a lot of hours on this,brwithout any progress.brbrThanks,brRavi.brbr__brDo you Yahoo!?brYahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!brhttp://platinum.yahoo.combr ___ No banners. No pop-ups. No kidding. Introducing My Way - http://www.myway.com
Re: How to return HTTP 204 on Document perform()?
(B- Original Message - (BFrom: "Toshiyuki Kimura" [EMAIL PROTECTED] (BTo: [EMAIL PROTECTED] (BSent: Wednesday, March 19, 2003 20:47 (BSubject: Re: How to return HTTP 204 on Document perform()? (B (B (B | In some cases I need to return HTTP 204 (OK) with no message body. (B (B Why do you need that ? (B (B You might get the result specified above if you do the followings; (B - create a Web service with 'no response' (B [ ex) 'void perform(Document in)'] (B - deploy the service as the 'One-way' RPC Mode (B (B However, I guess that AXIS or the other impl of the JAX-RPC runtime (B don't support the behavior. Additions, your original request is a (B dynamically change of the behavior with just 'return null'. I believe (B this is not allowed. Because if it's allowed, it means the interface (B between 'server' and 'client' is flexible. (B (BI have a misconfigured app that causes axis to generate a 204, but the axis (Bclient doesnt handle it (filed bugrep). I dont know what the WS-I stance is (Bon it, as the basic profile says nothing on the subject.
Re: ArrayOutOfBoundsException with 1.1RC2??
Jinesh Varia wrote: I am using Axis 1.1RC2. generated the client files using Wsdl2java. and then using a jsp as testclient I was getting this no deserializer defined for Array type error And gurus suggest me to use the nightly fix. That was out. but now I am getting java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.jsp.search_jsp.printPersons(search_jsp.java:62) at org.apache.jsp.search_jsp._jspService(search_jsp.java:259) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) The service is running fine when I send a SOAPRequest using XML spy then clearly the service is working :) Also the service is being accessed. the problem is in the client classes. I think AXIS is not deserializing properly the data strucuture arrays. Since I specified the client-config.wsdd file, it did got the no deserializer defined for Array type fixed. but now it does not know how to deserialize printPersons is a simple array of a data strucuture that contains perid and personname public void printPersons(JspWriter out, Person[] persons) throws IOException { int j=0; while(persons[j]!=null){ out.write(a class=fl href='person/perid +persons[j].getPerID()+'+persons[j].getPersonName()+/a +br/); j++; } } What exactly are you expecting here? specifically, what assumptions are you making about the array that comes back, and/or what assumptions are you making about arrays in java. This is not the normal way to iterate through an array in Java. -steve
Re: Caching
Toshiyuki Kimura wrote: Hi Narayanan and Steve, [Steve Loughran] wrote in the 'Re: axis and caching'; | Axis does not specify caching on the results of a POSTed SOAP request, |because POST requests are not cacheable or idempotent, according to the |HTTP spec. But I'd like to notify 'the HTTP spec.' is only mentioned 'HTTP/1.0'. If an axis user are using 'HTTP/1.1' as the transport layer and he want to configure the response as 'cacheable', the response message should be cacheable. Can you make a follow-up for this matter, Steve ? If you need, I can help you to post it as a bug for POST-1.1. I think the original poster actually wanted server-side caching, the way .NET does; this is fairly different from what you are talking of, which is setting a lifetime on the validity of responses. if you want to add expires: headers to posts, feel free to come up with a good mechanism to do so, and submit it as usual. -Steve
Re: Callbacks in SOAP application
- Original Message - From: Ricky Ho [EMAIL PROTECTED] To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Sunday, March 16, 2003 23:40 Subject: Re: Callbacks in SOAP application 4)Scope : The scope of the multicasting will be inside the private network such as 'the same segment' or 'intranet'. This is true is most cases. But the multi-cast can go over segments if IP multicast router is installed. I'm assuming you know your routing stuff, or have people on hand who do :) Are you planning on using the MBone for event notification?
Re: Intranet Hosting of SOAP specification
- Original Message - From: John Svazic [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 07:35 Subject: Intranet Hosting of SOAP specification Hi, Has anyone approached the problem of how to handle SOAP requests via Axis on an intranet with no external access? I'm concerned that the server that will be handling the SOAP requests will try to validate the incoming requests against an external XML Schema (such as the SOAP specification) but the server may not have internet access due to corporate security policies. Is it a valid solution to host these schemas locally instead? rest assured that axis does *no* schema validation of incoming messages, it takes it on trust that they match the schema declared.
Re: Callbacks in SOAP application
- Original Message - From: Ricky Ho [EMAIL PROTECTED] To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Monday, March 17, 2003 09:47 Subject: Re: Callbacks in SOAP application But what if there are M registered clients, the server need to establish M HTTP/TCP connections to callback. or each client needs to establish a connection with one or more peers have events trickle round.
Re: Axis light for client
- Original Message - From: Chris Forbis [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 13:35 Subject: RE: Axis light for client Hey, Now not that I have used either of these two there are many posts in t his group saying that for a client app to try them because they are smaller. Wingfoot or GLUE in applets seems to be the general posts I have seen. Now that said, why do we not look into making a VERY VERY light client jar for axis 1.2. Maybe something that will require 1.4 so we can use the stuff that java will have for XML and much of the http work? It would be a useful little exercise. You could perhaps strip out all the wsdl-to-java generation for a run-time-only system, which should save space, and some of the other stuff. You'll still need commons-logging, but bind it to Java1.4 logging instead of log4j. I look forward to see your results (and the axis-client) build file :)
Re: Catching Exceptions from incorrect proxy setting
- Original Message - From: Tim C. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 13:38 Subject: Catching Exceptions from incorrect proxy setting I keep returning to the same problem of trying to find a way of allowing a user on the client side to determine proxy settings. It seems if they define: System.setProperty(proxySet, true ); System.setProperty(http.proxyPort,8080); System.setProperty(http.proxyHost,wwcache.blah); before the first call is invoked it works. The problem comes when the wrong proxy settings are given and the exception is caught. If the correct proxy settings are then tried and a second call made to the server then it fails with the same exception (java.net.UnknownHostException). the JRE caches hostname to IP mappings, possibly to stop you subverting applet security by fiddling with DNS records. However, they also cache negative entries, in complete violation of the DNS specification. They say negative caching is used to improve performance., but this is so bogus it hurts. Who cares about the performance hit of looking up nonexistent hosts. I have been burned by this on long-lived server code; upstream DNS goes down for a bit and suddenly your server wont talk to the database till you restart it. Look up java.net.InetAddress for info on properties to set to control caching. These must be set *before* the JVM starts (on the command line), and they are different in Java1.4 from the prior versions, as are the defaults. Java1.4 claims a 10 sec cache on negative DNS, Java1.3 appears to hang on to negative lookups until shortly before the heat death of the universe.
Re: xerces.jar vs. xercesImpl.jar
- Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, March 13, 2003 11:16 Subject: xerces.jar vs. xercesImpl.jar I am surprised to find that axis seems to require a specific parser - xerces, and will not accept xercesImpl. I thought both would be JAXP 1.1 compliant parsers, as the set-up instructions describe: It does not require a specific parser, merely recommends ones that work. Lots of them seem to have problems with complex XML Schema. Xerces is the one that Axis is primarily tested against; crimson, caucho and the oracle one all have caused problems in the past. So the issue is not JAXP1.1 compliance, as compliance with the XML and XSD specificiations. In the WEB-INF directory, you'll find a lib directory. In this directory, copy the jars associated with the JAXP 1.1 XML compliant parser of your choice. We recommend xerces jars from the xml-xerces distribution, though others work. see: a recommendation, not a requirement. When I try to compile wsdl or run an axis client with xercesImpl.jar in the classpath instead of xerces.jar, I get: [java] java.lang.NoClassDefFoundError: org/w3c/dom/Node Any ideas why this incompatibility exists? You have multiple implementations of XML parsers in your classpath
Re: Probs with installation of AXIS
- Original Message - From: Sean Leblanc [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, March 13, 2003 14:38 Subject: Probs with installation of AXIS Hi all, I've been trying to get Axis installed into my Tomcat. I'm up to the point where the Axis Happiness page shows this. It does say that some optional libs were not loaded (xmlsec.jar), but that shouldn't matter, right? right. All is there and all looks like it is in the right place. yet axis cannot create an instance of the wsdl factory. I am sure it is related to either classloader heirarchies _or_ wsdl needing some other library, but nothing springs to mind. If nobody else can fix it, file a bug report. === AXIS error Sorry, something seems to have gone wrong... here are the details: Fault - WSDLException: faultCode=CONFIGURATION_ERROR: Problem instantiating factory implementation.: com.ibm.wsdl.factory.WSDLFactoryImpl: java.lang.ClassNotFoundException: com.ibm.wsdl.factory.WSDLFactoryImpl at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader .java:992) at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader .java:857) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at javax.wsdl.factory.WSDLFactory.newInstance(Unknown Source) at javax.wsdl.factory.WSDLFactory.newInstance(Unknown Source) at org.apache.axis.wsdl.fromJava.Emitter.createDefinition(Emitter.java:517) at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:323) at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:235) at org.apache.axis.providers.java.JavaProvider.generateWSDL(JavaProvider.java:4 18) at org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:72) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:143) at org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:355) at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:490) at org.apache.axis.transport.http.AxisServlet.processWsdlRequest(AxisServlet.ja va:428) at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:280) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java: 335) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:386) at
Re: Need help with SOAP/Axis
- Original Message - From: Jindal, Ashwini [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, March 11, 2003 19:51 Subject: Need help with SOAP/Axis Hello All, I am just beginning to learn SOAP and its use, which means I am very new to SOAP. I have the following need: I need to be able to setup a WebService which would recieve a request over SOAP and I want to read the TCP/IP headers coming along with the request. What are TCP/IP headers?
Re: Web Services book
- Original Message - From: Paris Apostolopoulos [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 12, 2003 11:00 Subject: RE: Web Services book I definetely agree woth Jason!Using this book I managed to make some great progress when it comes understanding AXIS , alright after a while you might find it a bit restricitve and some of the examples might not work , but for a newbie is the best soltuin around! I know wrox is preparing a new book about web services (axis?), but still not available! I should point out that some of the Irani and Bashar is wrong, because those bits in Axis havent ever worked. Example: Global Fault handling and lifecycles. If they'd written code to test these things, they would have noticed. The fact that they didnt, worries me. The source is there, why didnt they delve into it? I hope Oreilly will have a book about Axis too! They are, but that doesnt guarantee quality. It guarantees some sales regardless of quality, but does not mean that it will be the perfect book. That depends on the authors.
Re: How to preconfigure web service
- Original Message - From: Brian Ko [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 12, 2003 11:47 Subject: How to preconfigure web service Hi, I posted this question before. I guess it was lost somehow. Here is my question. I am developing web service using axis on jboss 3.0 tomcat 4.X.X. My plan is to package all the services along with our J2EE application and distribute it to customer as a war file or ear file. My goal is to eliminate the deploy process with AdminClient on customer site. Somehow jboss and tomcat ignore wsdd file in the archive file and I have to deploy it manually. Do I need to do something special to include wsdd file in the archive file? shouldnt. Attached is a servlet that may appear in axis1.2, but you can start with it today...you provide a list of .wsdd files to register and it does it on startup -every startup. So you dont need the admin client, and you can build up a full config file from the many sources without manual integration. no, i am not fielding support calls on the subject till it goes into axis (after 1.1), and you are left to configure it yourself. AutoRegisterServlet.java Description: Binary data
Re: Web Services book
- Original Message - From: Paris Apostolopoulos [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 12, 2003 13:05 Subject: RE: Web Services book I should point out that some of the Irani and Bashar is wrong, because those bits in Axis havent ever worked. Example: Global Fault handling and lifecycles. If they'd written code to test these things, they would have noticed. The fact that they didnt, worries me. The source is there, why didnt they delve into it? hat is true but its not the only book around that happens to have invalid and bad code..I can mention several other examples .Especially when it comes to the AXIS world where still things are being developed and the web services world is still 'under construction' , then it might be a bit normal. But I agree with you they shoould have tested the code..some of their mistakes in the code are quite...bad. In the open source world there is no such thing as stability. in particularly, with point releases on a regular basis and the new source visible, books visibly date faster than books against closed source, even if the effective lifespan is the same. (i.e. a book about .net1.0 is 100% accurate till .net1.1 ships, whereas OSS books slowly decay) But at the same time, there is an opportunity 1. you can see what is changing and revise the book to match, as you write it 2. you can file bugreps easily 3. you can fix things as you go along I wrote a book on Ant with Erik Hatcher last year (product placement: java development with ant, http://manning.com/antbook). You can look at our progress through Ant's CVS log and the bugzilla system: we found oodles of issues and inconsistencies. We could have written about them, but it was often easier to fix the bug as that benefits more people. Oft times we'd write about something, then go back and fix it and rewrite stuff. Then other people would change things and we'd have to rewrite it. by the time we'd finished we'd been through every class in the 150K line project, edited their java doc comments and generally struggled to keep up to date with changes. But the end result was we froze the code on the day ant1.5 shipped, and the process we used to generate the reference appendix is going to be the future of ant's autogenerated documentation: http://nagoya.apache.org/gump/javadoc/ant/proposal/xdocs/build/docs/manual/ In comparison the other books on ant (by ORA and sams) went for the rewrite of the documentation tactic, which takes a lot of drudge work and (in my biased opinion) doesnt add as much value. So the ORA ant book came out in may, six-eight weeks before ant1.5, yet was based on ant1.4. That was the wrong move, and you can see it in their amazon sales ranking, which is 1/10 ours. But the third book, the sams one, is (mostly) up to date with ant1.5, yet it gets completely ignored, even though I do think it is better than the oreilly book. People do make brand driven choices, when they are not always appropriate. I hope Oreilly will have a book about Axis too! They are, but that doesnt guarantee quality. It guarantees some sales regardless of quality, but does not mean that it will be the perfect book. That depends on the authors. Well I tend to belive that Orelliy has more Java oriented books in comparison with WROX and to tell you the truth most of my Java related books happen to be Oreilly publications! I would recommend you should be ruthless and judge each book on its own merits. I have read 2 other books from Oreilly about Web services (Java and SOAP , Building Web services with SOAP) , they were not bad but a bit abstract in some cases! There are at least two members of the Axis dev community working on axis books, including James Snell. As long as the authors are good at explaining themselves, they should be good books as the developers dont just understand the 'what' of axis, they will understand the why -the design decisions, the future options, etc, etc. Anyway its not bad to have a range of available books about AXIS..especially for the newbies.Because right now IMHO,..for the absolute newbie 'AXIS the next generation of SOAP' is the best available book! I agree.
Re: Web Services book
- Original Message - From: Michael Yuan [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 12, 2003 16:26 Subject: Re: Web Services book I wrote a book on Ant with Erik Hatcher last year (product placement:java development with ant, http://manning.com/antbook). You can look at our progress through Ant's CVS log and the bugzilla system: we found oodles I found Erik and Steve's ANT book excellent. Before I read that book, I was wondering how someone could write a 700 page book on a simple tool like ANT. Well, as it turns out, the book is much more than ANT. It is a mini-J2EE (as well as Open Source tools/frameworks) tutorial and everything is nicely tied together using ANT. We like to view it as a software engineering book in disguise. Or at least a book that discusses the practical problems of todays systems (XML parser grief, deployment, EJB, etc.) A chapter of that book discusses Axis. I wish it could discuss Sun's JAX-RPC too. That chapter is a free download for everyone up on the web site BTW. I suppose I should update the samples to axis-java2wsdl the like
Re: Web Services book
- Original Message - From: Paris Apostolopoulos [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 12, 2003 16:35 Subject: RE: Web Services book Dear Steve! I want to comment on your facts about the Ant book! I agree with your process , but we can not compare a book about Ant that IMHO is something specific and has a base version (eg. Usually basic tasks of Ant don't tend to become obsolete after a new version), with a book about AXIS and web services. So even the process of writing a book about itm I guess is harder! I agree, mostly. Enough changes from ant version to ant version that your life is easier if you are up to date. e.g ant1.6 will have an import statement to import other build files, anything can be declared outside a target, lots of minor tweaks. But all your old stuff still works, and the rate of change is under control: ant ships yearly now, users can keep copies in SCM and old versions still run happily. Axis is different as it is releasing quarterly, a lot of changes are related to interop and w3c standards, some to security, so it is important to upgrade, even at the risk to your own code/sanity. And it has to adhere to so many external standards: JAX-RPC, SOAP1.1, SOAP1.2, WSDL1.1, the defacto interop interpretations, that the dev team has less freedom to fix things that are blatantly broken. Plus it has very, very minimal documentation for something so complicated. More javadocs would be nice. As a student I still tend to believe that Oreilly has the best Java books around my only exception is my personally favourite as a student (Java how to Program by Deitel and Deitel) .I am insisting on Oreilly because being into the uni I have the chance believe me to have a look on many other books.(and only the AMAZON reviews) . Since now I found that Oreilly has a more developer-centric in their books! But again that might be only me! I like the ORA hacker ethos, just think that for many of the classic books: Servlets, Swing, Java Performance there are a few that are a let down. I also think that it is important for people who write books about OSS projects to contribute something back to the projects -bits of the book, code, even bug reports. It is, after all, a community effort. -steve
Re: Nested Classes for Java Beans not Allowed?
- Original Message - From: Doug Haigh [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 10, 2003 19:05 Subject: Nested Classes for Java Beans not Allowed? I have a class that does all soap that includes a nested JavaBean used for serialization/deserialization. It looks like === public class SoapMgr { public class InfoBean() implements Serializable { public InfoBean() { } ... } } == but the call fails because it says the InfoBean does not have a public constructor (which it does). Does Axis not support nested classes to be used as deserializers? Make it a static nested class, not a non-static one -that needs a soap manager instance in a different kind of constructor.
Re: Nested Classes for Java Beans not Allowed?
non static inner classes are a wierd and wonderful thing that have a secret binding to an instance of their owner -the class that contains them. They are very useful in Swing apps, and sometimes in other places, but can be very confusing to use (as they have access to all members in the container class) - Original Message - From: Doug Haigh [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, March 11, 2003 10:55 Subject: RE: Nested Classes for Java Beans not Allowed? Thanks, that did it. Can you enlighten me why it needs to be a static class? I am a Java newbie... -Original Message- From: Steve Loughran [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 11, 2003 11:25 AM To: [EMAIL PROTECTED] Subject: Re: Nested Classes for Java Beans not Allowed? Make it a static nested class, not a non-static one -that needs a soap manager instance in a different kind of constructor.
Re: Simple little trick for easing (de)serialization issues
- Original Message - From: Milind Gadre [EMAIL PROTECTED] To: Paul Andrews [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Monday, March 10, 2003 14:24 Subject: Re: Simple little trick for easing (de)serialization issues Agreed ... but consider situations (posted by several users on this list - and encountered by me) where you want to pass Java Object around but are limited by the JavaXML serialization support. I find the existing serialization support to go only as far as the simple types. I think my approach can lead to a more general purpose (de)serialization mechanism - based on the existing Java Serializable framework. I am curious if it has been thought of before and rejected for some reason. JavaObjectBase64Serializer JavaObjectBase64SerializerFactory JavaObjectBase64Deserializer JavaObjectBase64DeserializerFactory Regards... If you look at the continual problem, yes people on this list are constantly trying to send Objects over, File objects, HashMaps and complaining that Axis bails out. And no doubt the .NET support groups get calls saying 'we cant send System.Util.HashTable over the wire, or Why cant I send System.Object instances out. Both these problems stem from the same underlying cause: you cannot achieve interop without sacrificing seamless marshalling of all data you can have in a complex language. Or as I put in in my presentation: http://www.iseran.com/Steve/papers/interop/ Naiive and unrealistic expectations are a recurring interop issue. User education -that's you finding out you cant send stuff out. is the first step to addressing interop. At the same time, Web Services built on SOAP+XSD can improve interop. Axis needs better DataSet handling, everyone needs to agree on standards for hashtable, list, and other core collection types that can be mapped to java, .NET, C++ STL and Perl. Until then: stop trying to send stuff over SOAP that doesnt work in language s other than Java. Any quick hacks to support Java only (or indeed .NET, C++ or Perl) throw away a key benefit of the technology: you dont need to care what language the caller is using. Once you throw that away, what are you left with? A distributed messaging protocol that is slow, inefficient and incomplete -something not worth using -steve
Re: How to hot redeploy business classes?
that is a feature left to the app server -axis is a webapp after all. Tomcat has a management API that they document; you can GET various URLs to do the right thing, and they provide ant tasks to hide the details - Original Message - From: Brian Miller [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 10, 2003 14:53 Subject: How to hot redeploy business classes? I've read the User's Guide, but I'm still confused about how I can update the business classes I wrote without rebooting tomcat. Simply running the un/deploy.wsdd files through the AdminClient doesn't cause my business classes to be refreshed. So how's hot redeployment supposed to work?
Re: Simple little trick for easing (de)serialization issues
- Original Message - From: Milind Gadre [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 10, 2003 14:44 Subject: Re: Simple little trick for easing (de)serialization issues Claude, good point. I am new to using Web Services and wanted to get some feedback. I will keep your comments in mind moving forward. Counterpoint - General purpose interoperability is a myth. Both sides have to know what is being requested and delivered, and in what format. One need not always use the notion of interoperability to impose un-necessary hardship. I concur, but think longer term. You may want an all java shop this month, but a year from now you may need to connect to the services from ASP.net, a win32 app or something similar. Example: I am writing a COM object to use the SOAP toolkit to talk to my Java service, for better integration with win32 apps that support scripting. I am doing a lot of work on that client side to make sure the caller of the com object has a simple life (they just name a file to upload and a sender email address), I do the work of creating the xml job ticket, sending that and the attachment. If I'd written a java only web service, I would not be able to integrate my web service with the win32 apps is if I hadnt crippled parts of the API to work with interop. I can easily see the effect of mismatched Java versions causing headaches. While I would not use my approach to pass any and all Java Objects around, it may be reasonable to use it to simplify the passing of general Java Objects that come with the JDK - or complex types that are known to both sides of the fence. Ultimately, both sides of the fence *have* to know what is going around - unless we are restricting ourselves to making simple 'search' or 'stock price' queries against Google. I dont think that justifies marshalling java objects over the wire. As an aside, i have done that in the past in a different context (multicast IP transmittal of stuff). Once you move to interoperable XML you get more opportunities to do interesting things, believe me -steve
Re: Simple little trick for easing (de)serialization issues
- Original Message - From: Bill Pfeiffer [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 10, 2003 15:22 Subject: Re: Simple little trick for easing (de)serialization issues Steve, I have bought into the interop thing because there's an extremely good chance that my future clients (Insurance inducstry) will be using .NET and Java. So I have one choice and that is to make interop work. Now reality sets in. My data model contains java.sql.Date and ArrayList. I have no problem with (the idea of) marshelling these to the least common denominator of the SOAP types. Why not? SOAP supports arrays and datetimes. That's what these things are when it comes down to it. My original question stands. How do I write the serializers for these for the server side. Yes I will have to make assumptions, but I own the data model and can do that (Soap array is an ArrayList, Soap Datetime is java.sql.date). Is this possible? Has anyone done? Have examples? There ought to be mappings for the sql.date, if not, ask for them or add them, its faster that way. Similarly, there is support for Vector, so you could use that to add ArrayLists. Use the source in org/apache/axis/encoding/ser as your starting point. sql.Date should map to xsd:datetime ; ArrayList becomes a sequence of elements in XML . I guess part of the problem there is typing. When you export/import a simple typed array, its obvious what you send and receive. Note I find xsd:datetime trouble. Java runtimes add the correct timezone info from a Calendar object, and expect the timezone to be valid on receipt. .NET doesnt, it assumes local TZ everywhere. This leads to more confusion, the further from GMT you are, but confusing it is when things are 8 hours apart on a local system. Nowadays I have given up on time and use a long instead, with that mapped to the classic time_t datatype
Re: DIME attachment size limit
well, download the RC, look at the javadocs for axis.attachments.AttachmentPart to see what new and useful method calls there are. - Original Message - From: Sharmila Pillai [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 05, 2003 02:24 Subject: Re: DIME attachment size limit Hi Steve, Can you elaborate on this, please? I have been trying to get to the filename of attachments for a while now. I must admit, I haven't see the Axis1.1 code, yet. TIA, Sharmila. On 4/3/03 7:30 pm, Steve Loughran [EMAIL PROTECTED] wrote: you should note that Axis1.1 has some hooks to let you get at the filename of an received attachment and then 'detach' that file from the attachment, so that when the attachment object is destroyed, the associated file isnt. We use that to avoid copying big files around server-side.
Re: Performance
- Original Message - From: Anecito, Anthony (HQP) [EMAIL PROTECTED] To: 'Steve Loughran' [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Wednesday, March 05, 2003 12:21 Subject: RE: Performance Hi Steve, Your answers helped a lot. I do not normally get source code unless absolutely necessary. If I did then I would have been on the Axis dev message thread and more likely this message would not have occurred. Many Thanks, Tony I understand why you dont want to d/l the source. too many OSS projects rely on the source as a substitute for documentation -but if you follow that argument then I'd have to have the source for my server's OS (linux), toolchain (gnu), app server (tomcat), IDE (jedit when I dont use intellij) and all the components: log4j, junit, castor, hsql, As it is I choose to only have the source for Ant and Axis updated off CVS on a regular basis; I keep the source of most of the jars I use to hand so I can step into them during debugging. But Axis's documentation is weak, and as you do need to code against the axis classes, it helps to have the source in hand. It also gives you the opportunity to fix bugs, or at least add extra logging statements to find out why things arent working, and additions like that can only benefit everyone else as well. -steve
Re: wsdl and documentation
- Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 26, 2003 06:33 Subject: RE: wsdl and documentation Why does java2wsdl run against the .class files? Is that to ensure the WSDL is generated from a compile-able version of the interface? Or because reflection is the main approach to capturing the necessary info? reflection is the main approach to getting the info, though debugging info is used to get at things like parameter names. The alternative would be to parse the source, and there is no need to do that when reflection does it for you. I guess this kills my thinking that this might be simple. i never thought it'd be simple :(. And like I said before: xdoclet. Though I still think you should write the WSDL and generate the server and client code from it, as if it was just another IDL syntax. Peter -Original Message- From: Steve Loughran [mailto:[EMAIL PROTECTED] Sent: Tuesday, February 25, 2003 10:37 AM To: [EMAIL PROTECTED] Subject: Re: wsdl and documentation - Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 25, 2003 07:49 Subject: RE: wsdl and documentation This is an interesting thought - it doesn't seem like it would be that hard. Is anyone doing this, or interested in pairing up on it? I'd be game. How can you find out if someone else is already working it out? Peter java2wsdl runs against .class files. To get the javadocs you need to get at the .java source, then somehow preserve the results for the existing java2wsdl file *or* completely generate the WSDL at compile time. Why not just write the WSDL and create the server-side code and the client-side code? if you must do it, use xdoclet as the foundation. This email may contain confidential material. If you were not an intended recipient, Please notify the sender and delete all copies. We may monitor email to and from our network.
Re: wsdl and documentation
- Original Message - From: Nicholas [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, March 05, 2003 15:18 Subject: Re: wsdl and documentation i never thought it'd be simple :(. And like I said before: xdoclet. Though I still think you should write the WSDL and generate the server and client code from it, as if it was just another IDL syntax. Anyone know about any Ant tasks to do exactly this ? axis-wsdl2java The build file snippet I use to do this does the following 1. check that the source is up to date w.r.t the .WSDL file 2. create the soap api in build/axis/generated/ package tree 3. copy some (but not all) of the generated stuff to build/axis/src. I strip out the bits I dont want. My IDE and main javac task includes build/axis/src in the list of files to compile, and depends on the soapapi target. The hard part is now that WSDL is butt-ugly. !-- === -- !-- SOAP -- !-- === -- target name=check-soapapi uptodate property=soapapi.uptodate targetfile=${build.axis.dir}/uptodate.txt srcfile=${zoo.wsdl} / /target !-- create client and server stubs using axis -- target name=create-soapapi depends=init,check-soapapi unless=soapapi.uptodate axis-wsdl2java output=${build.axis.generated.dir} serverside=true skeletondeploy=true url=${zoo.wsdl} verbose=true testcase=true mapping namespace=http://zoo/; package=${axis.soapapi.package} / mapping namespace=http://ranier:8080/zoo/dtds/zoo.xsd; package=${axis.soapapi.package}.data / /axis-wsdl2java /target !-- copy all but the zoo.java class and the test case -- target name=soapapi depends=create-soapapi unless=soapapi.uptodate description=pull generated classes into a directory for inclusion into javac mkdir dir=${build.axis.src.dir}/${axis.soapapi.package.dirs}/ copy todir=${build.axis.src.dir}/${axis.soapapi.package.dirs} fileset dir=${build.axis.generated.dir}/${axis.soapapi.package.dirs} include name=**/*.java/ exclude name=ZooBindingImpl.java/ exclude name=ZooTestCase.java/ exclude name=ZooLocator.java/ exclude name=ZooBindingStub.java/ include name=*.wsdd/ /fileset /copy touch file=${build.axis.dir}/uptodate.txt/ /target
Re: DIME attachment size limit
- Original Message - From: Betsy Frey [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 07:11 Subject: DIME attachment size limit I cannot send a file as a DIME attachment if the file size is more than the DIME single-attachment limit of 2^32-1 bytes. The code looks like it chunks larger files into multiple DIME attachments, but it does not seem to work. Is this a known bug? Is there a suggested work-around? you are probably the first person to try and send stuff that big, which means you have just encountered the limits of the system. You could file a bug report, but the fastest way to fix it will probably mean you rummaging around in the code yourself. out of curiosity, what kind of files are you sending over the wire that are that big, and how far is the web service from the clients as far as the network goes. I hope you are all on a fast LAN...
Re: DIME attachment size limit
- Original Message - From: Betsy Frey [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 11:22 Subject: RE: DIME attachment size limit Hi Steve, We have a version management system that's being extended to use an Axis server. Our customers can store anything they want into the system, and we promise to return it back to them, on request. silly me, I should have looked at the domain. of course, Merant and the PVCS product family. Hopefully, not too many customers send items that big, but I don't want the transfer protocol to force an upper limit on size. well, they'd better not be talking to the server from .NET, as its DIME implementation buffers incoming data to memory, not the file system. Thanks for the response. When I do get around to addressing the problem, I'll let you know. you should note that Axis1.1 has some hooks to let you get at the filename of an received attachment and then 'detach' that file from the attachment, so that when the attachment object is destroyed, the associated file isnt. We use that to avoid copying big files around server-side.
Re: Trouble with logging in axis
- Original Message - From: Hugh Ferguson [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, March 04, 2003 14:50 Subject: Trouble with logging in axis I borrowed from numerous examples, and use the LogFactory to get a class. I've removed the log4j.properties file from the axis.jar and have my own which does vary the output. When I set my root category to DEBUG, I can see reams of debug info, just not the debug statements I planted. Here is the config for log 4j: # Set root category priority to INFO and its only appender to CONSOLE. log4j.rootCategory=INFO, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # I added these but they don't make any difference. log4j.logger.com.gwvas.soap=DEBUG, CONSOLE, LOGFILE log4j.logger.system.out=DEBUG, CONSOLE, LOGFILE (1) dont replicate the CONSOLE statement or you get double the stuff (2) hide all the axis debug info with log4j.logger.org.apache.axis=INFO
Re: Re: Fear of Attachments
not tried that; that is what GET is for (i.e. I return URLs to retrieve stuff). Have a look at what the echo sample does - Original Message - From: Mount, Dave [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, March 03, 2003 10:22 Subject: RE: Re: Fear of Attachments Steve, I also found your article very helpful. Do you know how to send attachments back to the client? This poses the same problem if you follow the 'echo' sample code. I've tried adding it the same way that JAFDataHandlerSerializer does. That is: Attachments attachments= context.getCurrentMessage().getAttachmentsImpl(); if (attachments == null) { // Attachments apparently aren't supported. // Instead of throwing NullPointerException like // we used to do, throw something meaningful. throw new IOException(Messages.getMessage(noAttachments)); } Part attachmentPart= attachments.createAttachmentPart(dh); I have this code in my service method before I return a bean class. However, the message that's returned is not multi-part, and it looks like the Axis code doesn't even check for attachments on the way out. Maybe that's the wrong approach. Thanks in advance for your help. -Dave
Re: happyaxis error
- Original Message - From: Jeff Greif [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, March 02, 2003 08:17 Subject: Re: happyaxis error You probably followed the Axis instructions and installed your own copy of xerces jars. This doesn't work because Tomcat already has its own, and there is a significant difference between them. Either use Tomcat's xerces jars, or (maybe this will work) replace the ones Tomcat is using (which are in some kind of common/endorsed directory) with yours. This has been a frequent question on this mailing list in the last few months -- there's probably a more definitive answer in the archives. 1. yes, it is caused by multiple *different* XML parsers clashing 2. Its somewhat unfair to blame the axis docs when quite often they are correct, such as whenever somebody installs tomcat LE (relies on crimson) or runs on any app server that does not expose an XML parser at all. 3. We do hint on axis/index.html that failure to run happyaxis.jsp is normally related to XML parser versions. If you want to add more detailed text, feel free to post the CVS patch I know its kind of ironic that happaxis raises support issues, but the parser problem will stop axis working too. Its just unfortunate that if JSP support is hosed, happy axis cannot complain about not liking your XML parser.
Re: AXIS support of SOAP 1.1 vs 1.2
- Original Message - From: Steve Pannier [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 27, 2003 15:44 Subject: RE: AXIS support of SOAP 1.1 vs 1.2 OK, so it sounds like a handler is needed to process headers. Let's forget about the different AXIS versions and mustUnderstand for a minute. What about a more general question. Does AXIS handle a SOAP 1.1 request according to the SOAP 1.1 standard? It ought to; SOAP1.2 is still finalizing. If not, should it? Or is AXIS moving towards strict SOAP 1.2 compliance in handling *all* requests, regardless of whether the request received is SOAP 1.1 vs 1.2? It should react according to the version of the call. I dont know how SOAP0.9 and 1.0 are handled. Maybe they arent. Maybe at some indeterminate time in the future we can drop the 1.1 support, but that will not be for a long, long time.
Re: configurable endpoints
- Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 27, 2003 11:01 Subject: configurable endpoints As part of developing a WS client with axis for SOAP-RPC calls, I would like the ability to configure the HTTP service location, so that the client could look to the external, true implementation of the service, or look to an internal, dummy implementation (that was built on the same WSDL). You can bind a locator to any URL you pass in, and so bind to any implementation of the service endpointURL = new java.net.URL(config.getEndpoint()); server = locator.getServicePort(endpointURL);
Re: client logging SOAP messages
- Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 27, 2003 13:49 Subject: client logging SOAP messages I have the following requirement for an Axis client app: The application must support logging of SOAP messages. Requests messages must be logged. Logging response messages is a secondary requirement (desired). Logging must be configurable, so that logging can be initiated without recompiling. Axis has built in logging; by default axis1.1 runs without any visible log client side. To see more configure log4j.properties and run with log4j.jar on your classpath to get the log. This is now hinted at in the reference.html document
Re: Struts and Axis! why not?
look at it differently. Why wouldn't Axis handle arabic unicode? It's just characters, and Java handles that; XML is unicode ready. Mybe you can just experiment. On the subject of documentation, you get what you write. Nobody gets paid to write it, if you find areas that are lacking, you can and should contribute to it. If you dont you arent helping the situation improve. -steve - Original Message - From: Zafar T Minhas [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 25, 2003 22:06 Subject: RE: Struts and Axis! why not? Rabih Ahlan! You know you talk about something very interesting, because I have not seen any kind of documentation where Axis can support Arabic Unicode. What if I want to send my Arabic data via xml? What if I want to make a web service that can handle Arabic? I have nothing to go by and I can find no duckumentation (I know its documentation, but at this point I'd rather say duckumentaion). You
Re: Struts and Axis! why not?
look at it differently. Why wouldn't Axis handle arabic unicode? It's just characters, and Java handles that; XML is unicode ready. Mybe you can just experiment. On the subject of documentation, you get what you write. Nobody gets paid to write it, if you find areas that are lacking, you can and should contribute to it. If you dont you arent helping the situation improve. -steve - Original Message - From: Zafar T Minhas [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 25, 2003 22:06 Subject: RE: Struts and Axis! why not? Rabih Ahlan! You know you talk about something very interesting, because I have not seen any kind of documentation where Axis can support Arabic Unicode. What if I want to send my Arabic data via xml? What if I want to make a web service that can handle Arabic? I have nothing to go by and I can find no duckumentation (I know its documentation, but at this point I'd rather say duckumentaion). You
Re: help with proxy
- Original Message - From: Nicola Muratori [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 26, 2003 02:57 Subject: Re: help with proxy many articles written in JavaWorld are in wrong!! please send feedback to this article: http://www.javaworld.com/javaworld/javatips/jw-javatip42.html They may be wrong now, but were correct at the time of writing, when the proxyHost stuff was valid -which was the java1.0 and 1.1 timeframe. The moral is never trust old articles and books.
Re: Accessing the XML in the SOAP message body directly
- Original Message - From: Naresh Bhatia [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 26, 2003 10:45 Subject: RE: Accessing the XML in the SOAP message body directly Issues -- 1) I am disappointed by SOAP's (or Axis'?) serialization/deserialization mechanisms in general. Take for example Lists and Maps - I cannot use them interoperably. I must use arrays instead! Lists and Maps are fundamental data structures that I leverage in my Java applications all the time. they arent in C, or directly in C++, or many other languages. Their absence from SOAP is a design decision. Its irritating and inconvenient, but the key to broad interop. I don't see why serializers/deserializes cannot look at a nice XML Schema and (with some developer help) produce the right data structures desired by the developer. Anything you can do to improve serialisation and deserialisation, in ease of use or performance would be accepted. If you cant get Axis to hand stuff off to a SAX or XML parser when cracking the body of a doc/lit message, then you have an opportunity to contribute something significant in terms of Axis improvements
Re: wsdl and documentation
- Original Message - From: Pascale, Peter H. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 25, 2003 07:49 Subject: RE: wsdl and documentation This is an interesting thought - it doesn't seem like it would be that hard. Is anyone doing this, or interested in pairing up on it? I'd be game. How can you find out if someone else is already working it out? Peter java2wsdl runs against .class files. To get the javadocs you need to get at the .java source, then somehow preserve the results for the existing java2wsdl file *or* completely generate the WSDL at compile time. Why not just write the WSDL and create the server-side code and the client-side code? if you must do it, use xdoclet as the foundation.
Re: Authorization Unauthorized: POST vs. GET
- Original Message - From: Michael Konietzka [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 24, 2003 08:41 Subject: Authorization Unauthorized: POST vs. GET Hi I deployed a webservice und Axis1.1beta with the following configuration: Apache 1.3.x - via mod_jk-tomcat3.3.x-axis1.1beta The webservice is protected with HTTP Basic Authorization. When using HTTP Post everything works fine. A wrong password results in a HTTP 401 Unauthorized. Axis offers also HTTP GET to access a webservice with a special query string. This works fine with correct user and password, but a wrong password results in a HTTP 500 Internal Server Error, when I would expect a HTTP 401 as by the HTTP POST-Request. The soap-Log says faultCode: {http://xml.apache.org/axis/}Server.Unauthenticated; Is there a reason why the both methods behave differently when using wrong login data? yes, the GET routine is waiting for somebody who cares about authentication to write and contribute the code :)
Re: Axis and Logging
Commons-logging is not a log framework, it bridges to multiple log frameworks, including log4j *and* Java1.4 logging. So you can drop log4j and still log. Look at jakarta.apache.org/commons for details on configuring it -there are some preferences and things that can control where axis logs. - Original Message - From: Anecito, Anthony (HQP) [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 24, 2003 09:05 Subject: Axis and Logging Hi All, I noticed that Axis seems to want to use Log4J or commons-logging. I would like to disable this and just use what Tomcat (app server) supplies rather than double up on JAR's ect. Also, I noticed that that Axis is looking for commons-logging.properties and I would like to find an example of what that should look like if I have to use commons-logging. Many Thanks, Tony
Re: Attachment Problem
- Original Message - From: Bathula, Vijay [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, February 21, 2003 07:53 Subject: Attachment Problem I am getting the Java.io.exception error while trying to send attachments from client to server and vice versa. java.io.IOException: No support for attachments I am using Axis1.1Beta, does anyone know whats goin on Do I need to configure anything in AXIS to make attachments work?? what does happyaxis.jsp say?
Re: Attachment Problem
you need them client side too: mail.jar and activation.jar - Original Message - From: Jue (Jacky) Shu [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, February 21, 2003 08:23 Subject: Re: Attachment Problem Make sure u have the DataHandler in happyaxis. Found Activation API (javax.activation.DataHandler) at C:\tomcat\webapps\axis\WEB-INF\lib\activation.jar - Original Message - From: Bathula, Vijay [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, February 21, 2003 10:53 AM Subject: Attachment Problem I am getting the Java.io.exception error while trying to send attachments from client to server and vice versa. java.io.IOException: No support for attachments I am using Axis1.1Beta, does anyone know whats goin on Do I need to configure anything in AXIS to make attachments work?? Please Help.
Re: Newbie question about FAULTs (again) and tomcat printing the stack trace!
- Original Message - From: Apostolopoulos Paris [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 20, 2003 08:44 Subject: Newbie question about FAULTs (again) and tomcat printing the stack trace! Hi again! Is there a way of doing something better? How can I stil send the FAULT to the client but then TOMCAT not to print the stack trace? Please if I am missing something let me know! axis1.1 does not do this by default. upgrade. make sure the axis.developmentsystem (spelling?) flag is false
Re: security - AdminService
RC1 has a document on security...it should answer your questions. AdminService only accepts calls from the local host, and it already has a default password..you can change it if you want - Original Message - From: Gianluca Del buono [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 19, 2003 01:13 Subject: security - AdminService Hi, How safe is to go into a production environment leaving the AdminService enabled ? That would make my web services vulnerable to a malicious attack where -for example- someone could use the AdminService to easily undeploy my services. What are the security precautions I should take before deploying my axis server into a production environment ? Should I disable the AdminService ? But what are the drawback of this option ? Or would'nt be better to set a password for the AdminService? Is it possible , and how ? Many thanks in advance for your help. Gianluca
Re: Determining if a service is deployed (wrapped in my own webapp)
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 19, 2003 10:34 Subject: RE: Determining if a service is deployed (wrapped in my own webapp) Thanks, but I've wrapped it in my own webapp. I tried this: http://149.98.242.166:8080/GMPServer/services/GMP which returned the page: GMP Hi there, this is an AXIS service! Perhaps there will be a form for invoking the service here... try http://149.98.242.166:8080/GMPServer/services/GMP?WSDL to get the wsdl, or http://149.98.242.166:8080/GMPServer/services/GMP?method=authenticateparam= rcuprakparam=alpha to invoke the endpoint I assume this means I have sucessfully deployed the service. I ran the java2wsdl tool on my class I am exposing as a webservice and then used wsdl2java to generate a client. I then wrote the following test code to use the generated client code: GMPService binding = null; try { binding = new GMPLocator().getGMPService(); } catch ( javax.xml.rpc.ServiceException jre) { jre.printStackTrace(); } try { boolean value = binding.authenticate(rcuprak,alpha); } catch (RemoteException e) { e.printStackTrace(); //To change body of catch statement use Options | File Templates. } When I run this I get a soap fault - something about target service being null which I am not sure how to resolve. time to start debugging. I like to use tools like Xmlspy when starting off, just to avoid having to get the client side right first. you can also use Wsdl2java to create junit tests, download chapter 15 of my book http://manning.com/antbook to steal the code to do that
Re: Determining if a service is deployed (wrapped in my own webapp)
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 19, 2003 12:13 Subject: Re: Determining if a service is deployed (wrapped in my own webapp) Thanks, I tried http://149.98.242.166:8080/GMPServer/services/GMP?WSDL but recieved a http 404 code. if you get a 404, then there is no service registered there. in axis1.0, the 'hi there' message wasnt smart enough to tell if there really was a service there, but in 1,1 it is. Maybe you are still running Axis1.0, no?
Re: (GETTING CLOSER- bug?) Re: Determining if a service is deployed (wrapped in my own webapp)
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 19, 2003 13:18 Subject: (GETTING CLOSER- bug?) Re: Determining if a service is deployed (wrapped in my own webapp) Okay, I removed the server-config.wsdd from my project so it wouldn't auto-deploy on startup. I then deployed it manually from the commandline and it worked perfected. The contents of the 'service' tag from the config file were copied directly into the deploy.wsdd. So, if I try to have it deployed on startup (via server config file) it sort of gets deployed - you can check it via services/name but if you attempt services/name?wsdl you get a 404 and attempting to call the service from a client results in a weird target service null soap fault. Is this a bug or did I miss the boat? it certainly looks bug-like
Re: HowTo change Transport type from HTTP/1.0 to HTTP/1.1
you need to wait for http1.1 support in axis, including persistent connections. Which means you either need to wait for java.net to fix its http1.1 support, or Axis to incorporate the Jakarta project's HttpClient 2.0 library to provide working htpt1.1. code. - Original Message - From: Kamlesh Patel [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 17, 2003 17:55 Subject: HowTo change Transport type from HTTP/1.0 to HTTP/1.1 Hi, I have written a simple client program using AXIS to connect to a gSOAP based server. By default is uses HTTP/1.0. Is there a simple way to change this from the client code. I used the WSDL2Java tool to create my java stubs. Basically I want to use the persistent connection feature of HTTP/1.1. I am doing the following in my client code, but without luck. ... //public class TestLocator extends org.apache.axis.client.Service implements TestPackage.Test TestLocator service = new TestLocator(); AxisEngine engine = service.getEngine(); MessageContext msg = new MessageContext(engine); msg.setProperty(axis.transport.version,HTTP/1.1); ... What am I missing here. Can't seem to get the property understood. I keep sending using HTTP/1.0. Any pointers will be very HelpFull. Thanks, Kamlesh
Re: Nulll Pointer Exception with java2wsdl
this has been fixed a while back. you need to be working with Axis1.1RC1, - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 18, 2003 12:37 Subject: Nulll Pointer Exception with java2wsdl Hello, I am guessing that I am probably doing something wrong as it looks like a string parsing problem but I am not sure what. I get a null pointer exception attempting to run the target below. Null Pointer Exception: java2wsdl Using CLASSPATH C:\Documents and Settings\L507107\My Documents\Development\GMPServer\bin\Webs\bin java.lang.NullPointerException at java.util.StringTokenizer.init(Unknown Source) at java.util.StringTokenizer.init(Unknown Source) at org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask.execute(Java2WsdlAntTask.jav a:177)
Re: WSDL, Java source and javadoc
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, February 16, 2003 03:38 Subject: RE: WSDL, Java source and javadoc Any suggestions for implementing the other way around, add comments to the WSDL? Should the wsdd support inserting documentation tags, or a good way to get comments somewhere and add them to the WSDL as documentation tags? Thanks, ArentJan The trouble with classic java is that the only bit of @tag metadata that goes into binaries is @deprecated; the rest of the javadocs are gone. what we really need is xdoclet support so that we can create our .wsdd descriptor from the source. I dont personally find generating WSDL documentation pressing as I (usually) write the WSDL first and have it generate the client and server code.
Re: WSDL, Java source and javadoc
this is an open bug report. Feel free to fix it. - Original Message - From: Elmar Fasel [EMAIL PROTECTED] To: axis mailing list [EMAIL PROTECTED] Sent: Friday, February 14, 2003 08:18 Subject: WSDL, Java source and javadoc Hi, is there a possibility to generate java stubs and skeletons with javadoc comments embedded, taken from the WSDL file documentation tags? Currently the content of documentation tags will be embedded as simple comment in the generated files. Best regards, Elmar
Re: Is there a chance of having a Forum of discussion ( something more flexible )
- Original Message - From: Apostolopoulos Paris [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 13, 2003 15:56 Subject: RE: Is there a chance of having a Forum of discussion ( something more flexible ) Well it was just a proposal..the main thing is to get the responses from the Axis about the main idea...a flexible discussion system like a forum lets say! What do you think? There is an IRC channel on Axis on undernet.org, though I forget its name. Also, emails have a nice feature: they are a searchable archive open to all. Which makes them a good discussion tool.
Re: Is there a chance of having a Forum of discussion ( something more flexible )
- Original Message - From: Apostolopoulos Paris [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 13, 2003 16:59 Subject: RE: Is there a chance of having a Forum of discussion ( something more flexible ) Well a database driven forum is also searchable and much better that the search facility of the mailing list! the apache archive has pretty good searching http://nagoya.apache.org/eyebrowse/SummarizeList?listId=49
Re: AxisServletBase.getEngine - startup performance
- Original Message - From: Andreas Siegers [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 10, 2003 07:06 Subject: AxisServletBase.getEngine - startup performance Hi all. The first call to the AxisServletBase.getEngine method takes about 6-7 seconds for me, which is untenable. I have some bad news for you about your JSP pages then... One way of solving it seems to be to add the load-on-startup tag in the web.xml and put the getEngine call in AxisServlet init method. Maybe, but I think the init code likes to have a Request coming down the wire to properly init itself (and work out things like its hostname) Why not preheat the web site by running httpunit tests after deployment, or have something probe your ?WSDL urls sporadically.
Re: Axis TaskDef
- Original Message - From: Mitch Gitman [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, February 08, 2003 22:33 Subject: RE: Axis TaskDef To run the Axis-specific Ant task axis-java2wsdl, I too had to set the classpath via the command line to include axis.jar, axis-ant.jar, and the rest of the Axis archives. I'm wondering if anyone has come up with a cleaner way to specify the classpath for axis-java2wsdl. 1. best: Set the taskpath inside taskdef with the nested classpath element 2. second best: add all the Axis stuff to ant/home
Re: Failure notices
try [EMAIL PROTECTED] - Original Message - From: Antti S. Brax [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 06, 2003 02:42 Subject: Failure notices Are the mailing list management e-mail addresses broken? I get failure notices from both [EMAIL PROTECTED] and [EMAIL PROTECTED].
Re: adding new services
- Original Message - From: Suleyman Yalinbas [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 06, 2003 10:32 Subject: Re: adding new services 1) axis.jar is under /usr/local/tomcat/webapps/axis/WEB-INF/lib 2) sorry for mistyping; the version is 3.2.4 ok. I dont know what the problem is. ClassNotFoundExceptions mean that Axis.jar cannot find your classes, or a class you depend on. If axis.jar was elsewhere in the tomcat (like a common lib dir), then it would be classloader fin. Otherwise, putting the jars into WEB-INF/lib should work. I only work with Tomcat4.1.18 these days, incidentally
Re: attachment temporary files
(B- Original Message - (BFrom: "Eiji Yoshida" [EMAIL PROTECTED] (BTo: [EMAIL PROTECTED] (BSent: Tuesday, February 04, 2003 19:31 (BSubject: attachment temporary files (B (B (B Hi, everyone (B (B I have a question about attachment temporary files. (B When SOAP message wtih attachment is sent, Axis (B generates the attachment files into (B %TOMCAT_HOME%\axis\WEB-INF\attachments directory (B according to attachment size. (B If the size of attachment exceeds 1024B, its temporary file (B is generated. (B (B I'd like to change the limitation of attachment size which (B is threshold of generating temporary files. (B To change the limitation, I must modify axis source code? (B (ref. AttachmentPart.java, ManagedMemoryDataSource.java) (B (Bafraid so, and it isnt even a constant yet: you have to change it in a (Bcouple of places (one for mime, one for dime). (B (BYes, this should be a configurable item
Re: Scalability, Multiple Threads/Objects?
the scalability is really defined by the app server; it is the one that creates the threads and the servlet instance to handle it. But your endpoint can be in an object created per message (The default), per session, or a singleton; the latter may scale better if you code for re-entrancy - Original Message - From: Roy Wood [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, February 05, 2003 06:33 Subject: Scalability, Multiple Threads/Objects? I've read through the Axis docs and can't seem to answer this question, and am hoping that someone else out there can help. I'm looking at deploying a SOAP/Axis service, and am concerned about scalability. It seems the logical thing to do is have several instances of my code running to service multiple incoming requests from the clients, but I can find no definitive statement that this is what Axis does. Anyone have anything to comment there? I'm deploying within Tomcat, so perhaps it is handled at the Tomcat level? -Roy Disclaimer The opinions expressed in this message are strictly personal and do not necessarily reflect those of FiLogix.
Re: calling SOAP with attachments from non java application
- Original Message - From: Josh Kropf [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 04, 2003 07:29 Subject: RE: calling SOAP with attachments from non java application Beware, Microsuks .NET Framework (Enhancment 1.0) ONLY supports DIME encoded messages that include atachments (as opposed to MIME which most other popular Java implementations use). Seems so surprising that microsoft would forse there development methods on the development community like that... strange :) what is more irritating is that out the box .NET 1.0 doesnt even do DIME; you need the Web Services Enhancement pack installed; and their WSDL.EXE tool doesnt generate compatible code...after creating the proxies you need to edit them by hand and change the parent class
Re: Re: set and get methods from the browser
Formally, GET requests are only a part of SOAP1.2. But (a) Axis1.1 has some soap1.2 bits in there and (b) Axis has long had a simple and informal way to make requests with GET, it just gets better with time :) try: http://localhost:8080/axis/EchoHeaders.jws?method=echoparam=test nb, looks like each param is sent is as a param=fooparam=bar style, not with the parameter names from the java source. - Original Message - From: Markus Frommherz [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 04, 2003 09:20 Subject: Antw: Re: set and get methods from the browser GET-Requests are only allowed in SOAP 1.2 WD) http://www.w3.org/TR/soap12-part0/#L26854 Axis implements 1.1 [EMAIL PROTECTED] 04.02.2003 17.58 Uhr - Original Message - From: Zafar T Minhas [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 23:56 Subject: set and get methods from the browser Hi I have made a web service, a very simple jws file. This is the code: private java.lang.String sGreeting = ; public String getMessage() public void setMessage(java.lang.String TempsGreeting) I am using axis. What I would like to know is whether there is a way of calling the both the setMessage and getMessage in the URL of the browser. If so does anyone know what the format of it is? try (on axis1.1 beta) GET service.jws?method=setMessageTempsGreeting=foo
Re: Make beanMapping default
- Original Message - From: Glen Daniels [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 07:30 Subject: RE: Make beanMapping default Hi Joel! There is some unfinished support in Axis for autoTyping, which sounds like what you want. AutoTyping, when switched on, will take any class which it doesn't find a mapping for and use the Bean serializer/deserializer with an XML type QName of java:package.subpackage.classname. The problem is that I never finished the configuration portion of this stuff. It wouldn't take much to add, something like putting parameter name=doAutoTyping value=true/ in your WSDD --Glen I'd never heard of this before. it would be cool, esp. for .jws deployment
Re: Out of Memory problem
send it as an attachment. That works for files that size. base64 encoding is very slow as well as being inefficient; XML parsers dont like strings that size. - Original Message - From: Doss Markus [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 08:14 Subject: Out of Memory problem Hi axis people I wrote some services which transports image data to a server. I've done this with apache soap. Now I transported a 8 MB tif image to the server and run out of memory. Actually I don't use attachments for the service. I code the image data base64 and sent this data with some additional data to server. The apache soap faq recomment to use axis. Are there any solutions and examples in axis to handle large files for transport to a server. The image data could by much larger than 20 MB. Thanks Markus
Re: Out of Memory problem
- Original Message - From: Brian Ewins [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 09:48 Subject: Re: Out of Memory problem Steve Loughran wrote: send it as an attachment. That works for files that size. base64 encoding is very slow as well as being inefficient; XML parsers dont like strings that size. Are we sure it's the XML parser thats at fault here? I'm a little interested in this one, as some of the stuff we do does the base64 thang (for historical reasons - its not our service at the other end). This isn't the first time I've seen people complain about OOME's with Axis, but there's no way you should OOM base64 transforming an 8Mb file - gzipped or not. The previous report, IIRC, was for a 2Mb string, not encoded. While these practices arent ideal, it makes me wonder if there is a bug that needs looking at. I dont know where the problem is, and if you can find it, great. But I dont think 'we cant base 64 an 8mb file and add it inline' is going to be a priority on my list.
Fear of Attachments
For all those people who want to do attachments, here is an early draft of something I'm writing to look at attachments properly, including for .NET and other platforms. Here is the Axis coverage; the code was working against the CVS version of Axis this weekend; there have been changes in attachment support since the 1.1 beta. There is no scheduled release date for the full paper, it depends on when I get round to it. -Steve Fear of Attachments.pdf Description: Adobe PDF document
Re: standalone vs. servlet
- Original Message - From: Dennis Sosnoski [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 10:44 Subject: Re: standalone vs. servlet Just in passing, one particular area that I suspect causes performance problems is the SAX event stream buffering that gets done for multiRefs in RPC encoded messages. This is an intriguing approach - if you need a reference to an object that's not defined yet, just skip ahead in the event stream to get the object definition, then continue on from where you are now. I suspect it'd be considerably faster (and simpler) to just create an object to track the forward reference, then fill it in when the reference is defined. This may be another area where the behavior is requried by JAX-RPC, though. yes, if you can hack that with a placeholder, life is simpler. ...maybe we should all move to JAX-M with WSDL support added on, or at least turn multiref encoding off altogether.
Re: Fear of Attachments
- Original Message - From: Mark Mueller [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, February 03, 2003 14:32 Subject: Re: Fear of Attachments Hi Steve, Thanks for the paper, it is helpful. I gather that it makes sense to support both MIME and DIME attachments in order to increase interoperability -- probably with two different operations in order to be able to specify the MIME-type of the MIME attachment in the WSDL binding. Your code samples are useful, but I'd really like to see the WSDL. I am leery of using DataHandler in my WSDL because it seems Java-specific. I like the idea of specifying the attachment file type as anyType in the message description and describing the mime-type as application/octet-stream because it feels generic and WSDL2Java creates a nice client which handles the attachment. The only qualm I have is that the client maps the mime-part to an Object which may not be very efficient. Mark There is no WSDL. Or to be precise, attachments arent in the signature thta WSDL knows about. I am just tacking them into the call before I make the request, and on the receiving end I pull out the attachments after the RPC invocation does it work of calling my method
Re: standalone vs. servlet
- Original Message - From: Anne Thomas Manes [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, February 02, 2003 11:46 Subject: RE: standalone vs. servlet Dennis, I absolutely agree with you regarding application code. Using well-optimized code and a good application server, you ought to be able to make a Java application run at a speed that's reasonably comparable to a C++ application. There's a bigger difference, though, when it comes to infrastructure code. In my experience, SOAP *platforms* built with C++ run a lot faster than those built with Java. Just as you won't find a J2EE app server that can compare with Tuxedo. Do you think that is an artifact of the C++ parsers, like MSXML4, actually being pretty impressively good compared to those in the java space? Or is it some other reason, like the dev team spent more time on tuning. Getting back to Denis' observation: yes, badly written C++ apps can have their own problems, esp. around concurrency, and as memory leaks tend to show up faster, there are big barriers to writing 7x24 systems. Plus you need to have people on the dev team who know the diff between strcpy() and strncpy(), and how to use the latter properly. That said, friends of mine do 7x24 stuff for telcos, and I have dabbled in the performance area. if you really know what you are doing, and know the target system (esp CPU cache properties and how its multiprocessor cache coherency works), and can insert prefetch instructions into your source, you can do stunningly fast code, at the risk of creating a maintenance nightmare later on, by virtue of the aggressively unsynchronised code you've just written. But perf tuned java has the same problem -if you write code knowing that int reads and writes are atomic and dont need syncing, and someone chanigns that field to a long, everything goes pear shaped. -steve
Re: standalone vs. servlet
- Original Message - From: Anne Thomas Manes [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, February 02, 2003 14:13 Subject: RE: standalone vs. servlet I suspect that the use of reflection has a lot to do with the issue. Java platforms use reflection to enable a bunch of dynamic features which are really hard to reproduce in a C++ environment. You'll find this to be true in SOAP platforms, servlet engines, and J2EE servers. It's a trade-off between function and performance, and in most circumstances , function wins. I think Axis only reflects in the java invocation phase, and in serialisation/deserialisation of stuff. I bet the latter aspect of marshalling is the slowest bit of the process...and wonder how hard it would be to autogen the code to do the binding. From what I've seen, the two top performing Java SOAP platforms are WASP and GLUE. BEA and XMLbus are close behind. All of these systems offer performance comparable to or better than .NET. I'd say that all of these implementations have been very well designed and optimized. But none of them can touch the performance of gSOAP, LEIF, or WASP for C++. I'm not sure how to explain it other than to blame the platform. (Perhaps it's something inherent to XML processing? There are some functions in which C++ really excels over Java -- maybe XML processing is one of them.) That'd be a really interesting research paper that would, too bad I dont have the time. Nb, remember, you arent allowed to discuss .net performance or disclose benchmark details :(
Re: Antw: Asynchronous interface
- Original Message - From: Anne Thomas Manes [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, January 31, 2003 06:30 Subject: RE: Antw: Asynchronous interface There's a difference between an asynchronous API and an asynchronous transport. You should be able to make asynchronous calls over HTTP, too. For a description of what I man, see the WASP documentation on asynchronous API: http://www.systinet.com/doc/wasp_jserver/basics/webServiceInvocation.html#ba sics.webServiceInvocation.asynchronous Well, axis CVS has a modified tcp mon that can simulate delays, so you can see how bad synchronous soap calls are if you do them in your primary thread. There is nothing in axis1.1 for async soap, but I could imagine something like -A thread reading off a Queue of Call objects, making each one in turn -calling some call-specific listener with progress as it goes -calling the listener with the response when it finishes -leaving the listener to deal with the response But I need to experiment with a special case of this (big file upload) to see if it flies
Re: Point of discussion - attempts to use non-typesafe contructs overXML-RPC
- Original Message - From: Benjamin Tomasini [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 09:13 Subject: Point of discussion - attempts to use non-typesafe contructs overXML-RPC In reading this list for a while, I have noticed that a lot of people have trouble (de)serializing things like Vectors, Lists, Maps, etc... I have found that the best way to use Axis / XML-RPC is to only use real typed objects such as arrays and concrete objects such as JavaBeans. I don't see how Axis could operate well using a late-binding approach. So, with this trend, I have a couple of questions. Feel free to state your opinion. In regards to XML-RPC you mean SOAP, surely :) 1. Is it practical to consider serializing any of the Collection interfaces? If so, is it safe? When should this be considered? depends on whether you want the far end to understand it or not...I prefer not to send collections until there is a uniform standard in how the stuff gets marshalled. 2. Should Axis users be encouraged to avoid such constructs over the wire and stick with strictly typed objects? yep 3. Should this be made a part of the documentation? what, like we add a section called What Axis can not send via SOAP in the user guide, say under this section? http://cvs.apache.org/viewcvs.cgi/~checkout~/xml-axis/java/docs/user-guide.h tml#DataMapping -steve
Re: Interoperative attachments (MIME types)
- Original Message - From: Mark Mueller [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 17:19 Subject: RE: Interoperative attachments (MIME types) I think I may have solved the problem. I think there's a misspelling of octet-stream in line 702 of org.apache.axis.wsdl.toJava.Utils: else if (application/octetstream.equals(mimeName)) { return Constants.MIME_OCTETSTREAM; If I use application/octetstream in my WSDL WSDL2Java works. The signature of the stub is: java.lang.Object echoAttachment( java.lang.Object ) I've just fixed that. Thank you for tracking down the problem. -steve
Re: Interoperative attachments (MIME types)
- Original Message - From: Mark Mueller [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 19:48 Subject: Re: Interoperative attachments (MIME types) Steve, What would be the downside of mapping any MIME type to a java.lang.Object by default (via MIME_OCTETSTREAM) if there is no specific mapping? In most cases (except for multipart), a MIME type represents a file of some sort, no? I have no idea. take it up with the axis dev mail list, especially those people who wrote that bit of code.
Re: user-defined Exceptions
- Original Message - From: Olivier Gauwin [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, January 29, 2003 00:56 Subject: Re: user-defined Exceptions Thanks, Steve, but I still have a problem... I've tried this (with Axis CVS) : AxisFault af = new AxisFault(code, faultString, actor, null); af.addFaultDetail(new QName(Constants.NS_URI_AXIS, why), e.why); throw af; It compiles, but when I call it, it raises this exception : java.lang.reflect.InvocationTargetException at org.apache.axis.AxisFault.makeFault(AxisFault.java:127) (...) at java.lang.Thread.run(Thread.java:536) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) (...) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:332) ... 38 more Caused by: java.lang.NoSuchMethodError: org.apache.axis.AxisFault.addFaultDetail(Ljavax/xml/namespace/QName;Ljava/la ng/String;)V at ProxyExceptions.bar(ProxyExceptions.java:191) ... 45 more I think it's not a classpath problem, because it compiles... I don't know if the problem comes from me or from Axis (have you already tested this method ?). If something compiles but at run time fails with a no such method then there is a diff between what you compiled with and what you run with. conclusion: there is 1 copy of axis.jar in your system. Have happyaxis.jsp tell you where axis is being loaded from And another point : With this addFaultDetail method, it seems impossible to use a tree for the detail elements : detail why reasonBecause it's out of bound/reason /why /detail You can still add elements you create yourself
Re: Can't find service-- PUT vs GET problem?
maybe its a bug in tomcat... - Original Message - From: Roy Wood [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, January 29, 2003 12:15 Subject: Re: Can't find service-- PUT vs GET problem? Use POST? I *am* using POST when I do the actual transaction. When I calculate the MD5 hash of the authentication info, I have to pass in GET to my hashing function or Tomcat rejects the results. Believe me-- I tried, and I just get back an endless stream of non-helpful 401 replies, each with a new nonce. :-( -Roy
Re: Interoperative attachments
- Original Message - From: Dennis Sosnoski [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, January 28, 2003 14:15 Subject: Re: Interoperative attachments Hmmm. So this means SOAP implementations that *don't* encode MIME attachments work as long as the data being sent doesn't happen to include the boundary pattern. In other words, they're broken? ;-) well, its more part of the mime spec that you have to make up a boundary that aint in the body. So you make up a long and fairly obscure pattern then scan through to look for it. Which does mean you need to stream through that 20MB file once to get the boundaries, then again to send it down the wire, but at least in scan two it will be off HDD and in cache, assuming you have an HDD and are not something like a Java cellphone. Seriously, I don't see this as a big deal as long as it's spelled out to the users of the implementation that they need to avoid this pattern in attachments, if necessary encoding the data themselves. I assume it *is* spelled out somewhere - I haven't tried using attachments yet, so I haven't looked at this part of things. It is not the end users problem, any more than it is when you attach an image to an email message.
Re: Simple mapping .asmx to .jws?
- Original Message - From: Randy Belknap [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, January 25, 2003 11:19 Subject: RE: Simple mapping .asmx to .jws? Does anyone know whether OPTION_JWS_FILE_EXTENSION is implemented? The org.apache.axis.handlers.JWSHandler has this: String extension = (String)getOption(OPTION_JWS_FILE_EXTENSION); if (extension == null) extension = DEFAULT_JWS_FILE_EXTENSION; Where the default extension is '.jws', but the option extension is a parameter that is looked up. I haven't been able to trace back to where how that parameter can get set. If you have any ideas, that would be cool. This would be an interesting experiment. At the very least, you need to edit web.xml to bind .asmx to the axis servlet; you can try setting the OPTION_EXTENSION the way you set any other parameter: as a global option in server-config.wsdd. But you'd be exploring new areas of Axis. The other trick would be servlet2.3 filter to forward .asmx to .jws urls
Re: Simple mapping .asmx to .jws?
- Original Message - From: Randy Belknap [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, January 27, 2003 13:26 Subject: RE: Simple mapping .asmx to .jws? Thanks! I will try these. BTW, I got Axis to use .asmx instead of .jws by modifying JWSHandler.java and changing DEFAULT_JWS_FILE_EXTENSION from '.jws' to '.asmx'. There was a small gotcha that some of the substring code assumes a 3 character file extension. There are two places where you need to change '-3' to '-4' and one place where you need to change '-4' to '-5'. Everything seemed to work fine, although I didn't do much testing. those numbers should be driven from the string length; perhaps a bugrep is in order
Re: Bean Serializers
- Original Message - From: Dave Stevens [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, January 17, 2003 07:04 Subject: Bean Serializers Does the Bean Serialization that comes with axis make use of the Java Bean serialization that was new with Java 1.4? (a) the source is there for you to see (b) axis is designed to work on java1.2+ (c) no
Re: Access statistics
- Original Message - From: rf [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 16, 2003 04:30 Subject: Access statistics Does AXIS already have any mechanism to maintain certain statistics like service access count, service invoker ipaddress, etc OR I have to do these myself using a filter? none of these yet...a handler would be nice, so its transport independent. AxisBaseServlet tracks current load; the number of GET or POSTs inside subclasses, and the AdminServlet tells you this...if/when JMX gets added it'll be a JMX monitorable value
Re: newbie question - installation problems
- Original Message - From: NJ Rogers [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 16, 2003 10:02 Subject: newbie question - installation problems Hi I've got axis deployed in tomcat, running on Windows 2K. I can validate ok - happyaxis.jsp tells me that I've got all the core axis libraries, but that 1 optional library is missing (xmlsec.jar which I will obtain) java.lang.NoClassDefFoundError: org/apache/commons/discovery/resource/names/DiscoverNamesInAlternateManagedP roperties at org.apache.axis.AxisProperties.getAlternatePropertyNameDiscoverer(AxisProper ties.java:170) at org.apache.axis.AxisProperties.setClassOverrideProperty(AxisProperties.java: 126) ...] So the AxisServlet method reportAvailableServices is failing, right? you need commons-discovery too. Current versions of happyaxis check for this. download from http://jakarta.apache.org/commons/discovery.htm
Re: newbie question - installation problems
that was http://jakarta.apache.org/commons/discovery.html with an l at the end. oops
Re: Altering default service page
- Original Message - From: Joe Shevland [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, January 16, 2003 15:12 Subject: RE: Altering default service page Hi Steve, Thanks for the advice (I should have thought of that) and it's worked well - I've just subclassed AxisServlet at this stage and have overridden the doGet() method. I'm checking for an empty or null query string, and when found I'm redirecting to a URL based on the name of the service being called (obtained from getRequestURI()). what was wrong with overriding reportServiceInfo(), which is a self contained little bit of reporting (assuming you are working off the latest source)
Re: Altering default service page
- Original Message - From: Joe Shevland [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, January 14, 2003 21:36 Subject: Altering default service page (Sorry if this is a duplicate, I don't think the original made it because of my sending address). Hi, I was wondering if it is possible to change the default page ('Hi there, this is an Axis service!') that is served when you access an Axis service endpoint w/o supplying parameters? I've searched the latest CVS source code for those words but haven't managed to find them (odd, is it gone in HEAD?). Its a string kept in resource.properties under axis.i18n. Ultimately I'd like to display some HTML documentation about the service when accessed with a simple HTTP GET. I recommend (a) subclassing AxisServlet to redirect to an html/jsp page. There are various reportXXX methods which report the various things. * Use the latest CVS source, not older versions* as things change. or (b) modifying Axis so that the current (or subclassed) servlet can take an html_description property from a web service and display that string. Although it would seem 'better' to have axis redir every variant on GET to a JSP page with the appropriate properties set up, we dont want to rely on jsp support in the web engine, hence the current hard coding