axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caristi, Joe" <jcari...@whisolutions.com>
Subject RE: I don't get it
Date Thu, 06 May 2010 13:27:43 GMT
With JiBX, Axis2 can't do everything that needs to be done.  You either have to create a binding
file yourself, or you can use JiBX CodeGen to do it for you.  Here's the link to the CodeGen
page: http://jibx.sourceforge.net/fromschema/codegen.html.  There is also one more step, which
is the binding compiler.  This adds the marshalling code to the Java classes (using the binding
file).  Here's a link:  http://jibx.sourceforge.net/bindcomp.html

Here is how we do it:


 1.  We started with WSDL.
 2.  We use JiBX CodeGen to generate the binding and Java files (if you want to keep your
original Java files, you would write the binding manually).  We do this every time our WSDL
changes.
 3.  We set up our Eclipse development environment to run the binding compiler automatically,
using Maven:

                  <plugin>
                        <groupId>org.jibx</groupId>
                        <artifactId>maven-jibx-plugin</artifactId>
                        <version>1.2.1</version>
                        <configuration>
                              <directory>src/main/config</directory>
                              <includes>
                                    <includes>*binding.xml</includes>
                              </includes>
                              <verbose>false</verbose>
                        </configuration>
                        <executions>
                              <execution>
                                    <phase>process-classes</phase>
                                    <goals>
                                          <goal>bind</goal>
                                    </goals>
                              </execution>
                        </executions>
                  </plugin>



 1.  We run wsdl2java, pointing to the binding file that was produced by CodeGen.  We only
do this when a WSDL change would affect Axis2, such as a new operation.

Here is a link to two tutorials that provide a good overview of the process:  http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=jibx+1.2
________________________________
From: Hehl, Thomas [mailto:Thomas.Hehl@acs-inc.com]
Sent: Thursday, May 06, 2010 8:20 AM
To: java-user@axis.apache.org
Subject: RE: I don't get it

Thanks for your help, Joe.

I have run the following command against my WSDL:

D:\agile\repository\wsdl>d:\javatools\axis2-1.5.1\bin\wsdl2java -d jibx -s -uri .\ValidationCodeService.wsdl
Using AXIS2_HOME:   D:\javatools\axis2-1.5.1
Using JAVA_HOME:    d:\java\jdk
Retrieving document at '.\ValidationCodeService.wsdl'.
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
: java.lang.RuntimeException: JiBX wrapped support requires a binding definition
 to be provided using the -Ebindingfile {file-path} parameter
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGener
ationEngine.java:271)
        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: java.lang.RuntimeException: JiBX wrapped support requires a binding d
efinition to be provided using the -Ebindingfile {file-path} parameter
        at org.apache.axis2.jibx.CodeGenerationUtility.engage(CodeGenerationUtil
ity.java:233)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.axis2.wsdl.codegen.extension.JiBXExtension.engage(JiBXExte
nsion.java:77)
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGener
ationEngine.java:224)
        ... 2 more

It appears to want a binding document. I read the article that you sent me and the section
of the Axis manual and found references to binding document, but no examples of how one looks.
Can you help?

Thanks!

________________________________
From: Caristi, Joe [mailto:jcaristi@whisolutions.com]
Sent: Wednesday, May 05, 2010 11:05 AM
To: java-user@axis.apache.org
Subject: RE: I don't get it

The missing piece is that somehow Axis2 needs to be able to translate between XML (the Soap
or Rest message on the wire) and Java classes (in your application).   This is known as data
binding, and consists of code to marshall and unmarshall the XML data.  This code usually
gets generated (in one way or another) and needs to be incorporated into your application.

Look at this article, which explains the three available choices in detail: http://www.ibm.com/developerworks/webservices/library/ws-java3/.
 The summary at the end of the article is a good starting point for making a choice between
the frameworks.  We have had great success with JiBX.  We originally used ADB, but switched
to JiBX for performance and flexibility.
________________________________
From: Hehl, Thomas [mailto:Thomas.Hehl@acs-inc.com]
Sent: Wednesday, May 05, 2010 10:27 AM
To: java-user@axis.apache.org
Subject: I don't get it

OK, I've used Axis once before briefly and now I'm trying to use Axis2. The problem I'm having
is that the documents don't appear to be written for me. I need some advice on how to proceed.

My situation is that after building a web application, it turns out that we need to have heterogeneous
clients accessing our application. No problem, I thought, because I created a services layer
behind the controller. I can use axis2 to generate a WSDL for my services layer and expose
the API that way to the other clients that need to access it and our controllers as well.

My intent had been simply to run java2wsdl on the classes in my services jar, then wsdl2java
on the resulting wsdl to build the client. Then I'd patch these pieces together and let the
web services do the communication.

As I'm reading through the documentation, though, it talks a lot about ADB and JiBX and AXIOM
and XML beans, but doesn't appear to explain any of them. Evidently, I'm supposed to know
which of these I'm using before selecting Axis2 as a tool.

So now I'm sort of stuck. Will someone kindly take a moment and shine a little light, please?


Thom Hehl

Senior Development Specialist

Public Safety & Justice

Affiliated Computer Services, Inc.

A Xerox Company

1733 Harrodsburg Road

Lexington, KY 40504-3617

Tel 859.277.8800 x 144

Fax 859.277.2300


________________________________
STATEMENT OF CONFIDENTIALITY:



The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain confidential or privileged information. If you are not the intended
recipient, please notify WHI Solutions immediately at gc@whisolutions.com,
and destroy all copies of this message and any attachments.

________________________________
STATEMENT OF CONFIDENTIALITY:



The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain confidential or privileged information. If you are not the intended
recipient, please notify WHI Solutions immediately at gc@whisolutions.com,
and destroy all copies of this message and any attachments.

Mime
View raw message