Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7770533
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T16:25:57+00:00 2026-06-01T16:25:57+00:00

I am trying to call a web service from my app. If I invoke

  • 0

I am trying to call a web service from my app. If I invoke web service method which accepts string or primitives as input then it works fine but when invoke a web service method which accepts a complex object (of Specimen class in my case) then I get following error

org.apache.axis2.AxisFault: Unknow type {http://spec.com}specimen
    at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:349)
    at org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:827)
    at org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:746)   

I am following : http://seesharpgears.blogspot.in/2010/10/ksoap-android-web-service-tutorial-with.html

I have tested my web service in web service explorer and its working fine.Here is my web service

package com.spec;

public class Spec {

    public String sayHello(String name)   // I can successfully invoke this 
    {
        return "Have a great day " + name;
    }

    public String saveSpecimen(Specimen specimen) // Getting error for this
    {
        System.out.println("id: " + specimen.getId());
        System.out.println("name: " + specimen.getName());
        return "Specimend with id " + specimen.getId() + " is successfully saved";
    }
}

Here is my specimen class

package com.ws;

import java.util.Hashtable;

import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.PropertyInfo;

public class Specimen implements KvmSerializable {
    int id;
    String name;

    public Specimen() {
    }

    public Specimen(int idValue, String nameValue) {
        id = idValue;
        name = nameValue;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Object getProperty(int arg0) {
        if (arg0 == 0)
            return id;
        else
            return name;
    }

    public int getPropertyCount() {
        // TODO Auto-generated method stub
        return 2;
    }

    public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo info) {
        switch (arg0) {
        case 0:
            info.type = PropertyInfo.INTEGER_CLASS;
            info.name = "id";
            break;
        case 1:
            info.type = PropertyInfo.STRING_CLASS;
            info.name = "name";
            break;
        default:
            break;
        }
    }

    public void setProperty(int arg0, Object value) {
        switch (arg0) {
        case 0:
            id = Integer.parseInt(value.toString());
            break;
        case 1:
            name = value.toString();
            break;
        }
    }
}   

Snippet from Activity

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,
                OPERATION_NAME);

        Specimen specimen = new Specimen();
        specimen.setId(1);
        specimen.setName("Test_Specimen");
        PropertyInfo info = new PropertyInfo();
        info.setName("specimen");
        info.setValue(specimen);
        info.setType(specimen.getClass());
        request.addProperty(info);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
        envelope.addMapping(WSDL_TARGET_NAMESPACE, "specimen",new Specimen().getClass());
        HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
            httpTransport.call(SOAP_ACTION, envelope);
            SoapObject response = (SoapObject)envelope.getResponse();
            Toast.makeText(getApplicationContext(),"Msg from web servce "       +              response.toString(),Toast.LENGTH_LONG).show();

I think the problem is with

 envelope.addMapping(WSDL_TARGET_NAMESPACE, "specimen",new Specimen().getClass());

Here is my Specimen complex type declaration in wsdl file

<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" argetNamespace="http://spec.com/xsd">   
<xs:complexType name="Specimen">  
<xs:sequence>  
<xs:element minOccurs="0" name="id" type="xs:int"/>   
<xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/></xs:sequence></xs:complexType>  
</xs:schema>

Please let me know if I am making any blunder.

Thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T16:25:58+00:00Added an answer on June 1, 2026 at 4:25 pm

    Tried a lot but not able to get it work. So updated web service to simple parameters and passed all attributes present in object.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Trying to call a SAP SOAP Web Service from a generated sudzc app shows
I am trying to call a web service from an iOS app. I have
I'm trying to call a Java Web Service from an MVC3 .NET web app
I'm trying to call a web service from Excel 2003 module. The way i've
I am trying to call a web service from asp.net 3.5 application. I have
I'm running into this problem when trying to call a SOAP Web Service from
I am trying to make a web service call from PHP to a SOAP
I am trying to call a web service (using nusoap ), which work well
i'm trying to call a WCF service from my Silverlight 3 app. But... when
I am trying to retrieve information from a web service call. The following is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.