cancel
Showing results for 
Search instead for 
Did you mean: 

Custom Axis handler deployment

Former Member
0 Kudos

Hi!

I have the requirements to develop custom handler for Axis adapter of PI 7.11. I`ve kindly looked through the SAP Note 1039369 FAQ XI Axis Adapter, but can`t find what have to be name and structure of sda file to be deployed to AS Java.

From FAQ:


There are several places you can package your handlers. If your handlers do not require any references to any service or application components, they can be simply packaged in the standard 3rd party library SDA aii_af_jmsprovider.sda or com.sap.adapter.lib.sda depending on the adapter engine version (i.e., the former for the 640/700 engine and the latter for the 710 engine).

In blog http://scn.sap.com/people/alessandro.guarneri/blog/2011/01/10/soap-fault-in-sap-pi-hijack-it Alessandro advices just to put complied java class to aii_af_axisprovider.sda and deploy it. Refer to SAP Note 1028961 this package should be named as com.sap.aii.af.axisproviderlib.sda.

Is this a working approach? Does the sda have to include all required adapter jars or I can put just compiled handler class?

The other approach described in Axis FAQ is to use Axis SDK package:


If your handlers require some references to some service or application components, they must be packaged in a component that has references to these components and has its own start/stop life-cycle management. Your handlers should be registered to the Axis's class utility registry at the start up. In particular, if the adapter uses some handler classes that are not included in the standard library components of the Axis adapter, the class loaders of these classes must be registered in the org.apache.axis.utils.ClassUtils registry.

...

This step can be automatically performed when you simply include your handler classes in the Axis sample adapter package and add these class names in its  axis-application-classes.properties file. In this case, the Axis sample adapter will automatically register these classes. Read What is the Axis sample adapter SDK? for more information.

...

The Axis sample adapter SDK for the 7.1x codelines is available as two deployable archives com.sap.aii.adapter.axis.sample.rar and com.sap.aii.axis.sample.app.sda.

Could anyone clarify what archive should I use to deploy handler? Both or just one?

I`ve found axis-application-classes.properties in com.sap.aii.adapter.axis.sample.jar include with com.sap.aii.adapter.axis.sample.rar.

So do I need to put compiled handler class to com.sap.aii.adapter.axis.sample.jar, add it to sda  and deploy?

Thanks for help in advance.

Best regards,

Sergey.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Finally, I`ve deployed custom Axis handler packaged to com.sap.aii.af.axisproviderlib.sda with all referencing libs and updated provider.xml.

To prepare com.sap.aii.af.axisproviderlib.sda you can check SAP Note 1028961.

Regards,

Sergey.

0 Kudos

Hi Sergey,


May I know how to deploy the custom Axis Handler? Do you mind provide mine me a step to step guide? I know how to deploy the provider libraries but don't know how to include my handler to it. my handler is an enhance HTTP sender that i would like to replace the original one.

I can share my codes with you.


Thanks!

Vincent

Former Member
0 Kudos

Hi!

1. Add your package jar to "lib" folder of com.sap.aii.af.axisproviderlib.sda

2. Add the jar reference to "server/provider.xml"

3. Deploy sda using NWDS Deployment snap-in or SUM(JSPM).

I don`t know, maybe now the more correct way exists.

Best regards,

Sergey.

0 Kudos

Hi Sergey,

Thanks for your quick reply. I tried to deploy the Sample handler in Note 1039369 as mentioned as Axis SDK to PO 7.31 SP11.

In the Axis SDK for 7.31, there are two files com.sap.aii.adapter.axis.sample.rar and com.sap.aii.axis.sample.app.sda. To deploy them and test the sample handler "SimpleAuthentication". Do I extract com.sap.aii.adapter.axis.sample.rar and include the com.sap.aii.adapter.axis.sample.jar to the Axis SDA Maker Tool?

I then deploy the result SDA to server but when I try to use it in the Adapter:

I am getting error "handler is not instaniated".

I really appreciate for your time and help, I tried to understand the steps to deploy custom handler to do some low level Soap communication customization.

Thanks!

Vincent

0 Kudos

And here is the server/provider.xml

<?xml version="1.0"?>

<provider-descriptor>

  <display-name>XPI Axis Provider Library</display-name>

  <component-name>com.sap.aii.af.axisproviderlib</component-name>

  <provider-name>sap.com</provider-name>

  <references>

    <reference type="library" strength="strong" provider-name="sap.com">com.sap.base.technology.facade</reference>

    <reference type="library" strength="strong" provider-name="sap.com">engine.j2ee14.facade</reference>

  </references>

  <jars>

   <jar-name>lib/addressing-1.0.jar</jar-name>

   <jar-name>lib/axis.jar</jar-name>

   <jar-name>lib/com.sap.aii.adapter.axis.sample.ejb.jar</jar-name>

   <jar-name>lib/com.sap.aii.adapter.axis.sample.jar</jar-name>

   <jar-name>lib/com.vces.axis.jar</jar-name>

   <jar-name>lib/commons-codec-1.4.jar</jar-name>

   <jar-name>lib/commons-discovery-0.2.jar</jar-name>

   <jar-name>lib/commons-httpclient-3.0.jar</jar-name>

   <jar-name>lib/commons-logging-1.0.4.jar</jar-name>

   <jar-name>lib/commons-net-1.0.0-dev.jar</jar-name>

   <jar-name>lib/opensaml-1.0.1.jar</jar-name>

   <jar-name>lib/wsdl4j-1.5.1.jar</jar-name>

   <jar-name>lib/wss4j-1.5.11.jar</jar-name>

   <jar-name>lib/xalan-2.7.1.jar</jar-name>

   <jar-name>lib/xercesImpl-2.9.1.jar</jar-name>

   <jar-name>lib/xmlsec-1.4.4.jar</jar-name>

  </jars>

</provider-descriptor>

Former Member
0 Kudos

I guess, "handler.type" value should contains the path to your handler in the jar deployed instead of the jar file name.

Sergey.

Answers (0)