We're currently working with a vendor-provided WSDL schema that is very large. The binding style is RPC. As far as I know, Axis 1.x is the only Java tool supporting RPC WSDL definitions. Please do correct me if I'm wrong about that.
WSDL2Java generates a service-nameSkeleton.java file that has a static intialisation block 1.3Mb in size - considerably larger than Java's 64K limit.
Given that we can't change the definition of the interface, how do you think we should proceed?
Our options as I see them are:
- Break up the generated static block
- Break up the WSDL (not sure if that's possible without altering the interface)
- Patch the Axis WSDL2Java code
Any other ideas?
-
If your wsdl is likely to change frequently, it could be worth patching the wsdl2java code, otherwise I would go for the first option.
-
See this article, which gives some instructions on how you can convert a RPC WSDL to a document one. I recommend trying that first.
Also, you probably have an RPC/encoded WSDL (which by the way, doesn't conform to WS-I). JAXWS only supports RPC/literal. So any framework (like CXF or Axis2) will support it. So, you can also try to convert the WSDL to RPC/literal.
CXF has a tool that could do the job for you.
Anyway, I recommend trying to convert the WSDL to a more recent form. This will make your life easier, both for the server and the client implementations. I don't believe that is worth fighting with Axis1. Even manually writing and parsing the SOAP messages could be easier.
0 comments:
Post a Comment