Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Blog?

Blog stream

Create a blog post to share news and announcements with your team and company.

What?

The AndroidSOAP is "yet another" SOAP client for Android platform, it is compatible with 1.5+ versions and uses Reflection API.

But... this is only a proof-of-concept library, I've tested it with JBoss WebService stack, see and/or try the example.

Why?

Using AndroidSOAP is a very easy way to call a SOAP service, because it is based on JAX-WS interfaces. You can use all interfaces that the 'wsimport' generates from the WSDL. Short example:

How?

 /**
  * Creates a request, it is a JAX-WS generated class
  */
 ListSkinPacksRequest request = new ListSkinPacksRequest();

 /**
  * Put it into a 'request' map
  */ 
 Map<String, Object> parameters = new HashMap<String, Object>();
 parameters.put("request", request);

 /**
  * Create an envelope with namespace and create a body with operation name 'listSkinPacks'
  */
 Envelope envelope = new SimpleEnvelope("http://skinpack.pop.javaforum.hu/");
 envelope.setHeader(new SimpleHeader());
 envelope.setBody(new SimpleBody("listSkinPacks", parameters));

 /**
  * Creates a transport (HTTP or HTTPS) with an optional username/password
  */
 HttpsTransport transport = new HttpsTransport("https://services.power.of.planets.hu/PoP-SkinPack-remote/listSkinPacks",
     "androidsoap.demo@javaforum.hu", "demopassword");
 /**
  * Set the 'trust all' flag, if necessary
  */
 transport.setTrustAll(Boolean.TRUE);

 /**
  * Call a service, the result arrives into the JAX-WS class
  */
 ListSkinPacksResponse response = transport.call(envelope, ListSkinPacksResponse.class);

 /**
  * You can use the result as a normal bean
  */
 for (SkinPackMetadata metadata : response.getReturn().getSkinPacksList())
 {
   String fileName = metadata.getFileName();
   String name = metadata.getName();
 }

Can you see? The lists are lists, the classes are classes, the values are in the properties, just like in the JAX-WX client... (smile)

If any field has XmlElement annotation in the generated source, you need add jaxb into your Android project, like this:

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.2.6</version>
  <scope>compile</scope>
</dependency>

And add coreLibrary into the  configuration of the android-maven-plugin:

<dex>
  <coreLibrary>true</coreLibrary>
</dex>

Where?

Source: http://svn.javaforum.hu/svn/android/AndroidSOAP/trunk/

Wiki: http://wiki.javaforum.hu/display/ANDROIDSOAP/Home

Issues: http://traq.javaforum.hu/browse/ANDROIDSOAP

Example apk: http://nexus.javaforum.hu/nexus/content/repositories/releases/hu/javaforum/android/androidsoap/AndroidSOAP-example/0.0.5/AndroidSOAP-example-0.0.5.apk

Tutorial?

Step by step tutorial with Maven3 project: Step by Step Tutorial

Patches and feature requests?

If you have a patch, don't hesitate, send me as fast you can... (smile)

If you need a feature, create an issue... (smile)

If I'm not using Maven?

The entire project (with dependencies) managed by Maven3, if you aren't using Maven3, you need some jars to add your project's CLASSPATH:

Example screenshot


      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels