In Axis2, no WSDD is required.

POJO is what I am using. At the server, users just need to write OO program
as usual. No particular work is required. I notice that the sample,
addressbook, in the directory of POJO accompanied with AXIS binary package,
works fine. My case should be the same as that. But the method on the server
is not recognized for my method's parameters is changed from String to
Ljava/lang/java!

What I am wondering why Ljava/lang/java comes out? I never use it. I believe
a proper design of Web services development system should NOT bother users
with so many underlying techniques.

Thanks,
LB

On Mon, Mar 14, 2011 at 10:02 PM, <[email protected]> wrote:

> Well, I'm not expert at all. The exception is in the server side, right?
> Can you share the wsdd?
>
> Sent via BlackBerry from T-Mobile
> ------------------------------
> *From: * Bing Li <[email protected]>
> *Date: *Mon, 14 Mar 2011 21:48:14 +0800
> *To: *JOSE L MARTINEZ-AVIAL<[email protected]>
> *ReplyTo: * [email protected]
> *Cc: *<[email protected]>
> *Subject: *Re: NoSuchMethodError: ... (LJava/lang/String)
>
> Dear Jose,
>
> I didn't use WSDL to generate any stud code. What I am currently using is
> POJO. I don't understand why AXIS has such a design on Web services?
>
> Thanks,
> LB
>
> On Mon, Mar 14, 2011 at 7:35 PM, JOSE L MARTINEZ-AVIAL 
> <[email protected]>wrote:
>
>> can you provide the WSDL you are using?
>>
>>
>> 2011/3/14 Bing Li <[email protected]>
>>
>>> Sorry to send the question again. I forgot putting the example code in
>>> the previous email. The code is as follows. It works fine. However, my code
>>> does not.
>>>
>>> public class AddressBookService {
>>>
>>>     private HashMap entries = new HashMap();
>>>     private MyAddress myaddr = new MyAddress();
>>>
>>>     /**
>>>      * Add an Entry to the Address Book
>>>      * @param entry
>>>      */
>>>     public void addEntry(Entry entry) {
>>>         this.entries.put(entry.getName(), entry);
>>>     }
>>>
>>>     /**
>>>      * Search an address of a person
>>>      *
>>>      * @param name the name of the person whose address needs to be found
>>>      * @return return the address entry of the person.
>>>      */
>>>     public Entry findEntry(String name) {
>>>         return myaddr.getAddr(name);
>>>
>>>     }
>>> }
>>>
>>>
>>> On Mon, Mar 14, 2011 at 2:33 PM, Bing Li <[email protected]> wrote:
>>>
>>>> Dear Martin,
>>>>
>>>>
>>>> I appreciate so much for your help!
>>>>
>>>> However, I am still confused about the problem. I tried one example as
>>>> follows. In this example, a String is sent as a parameter. And then a local
>>>> method, getAddr(String keyword), of an object, MyAddress, is invoked. I
>>>> noticed that it worked fine.
>>>>
>>>> My case should be the same as that. What I am wondering why such a type
>>>> Ljava/lang/String emerged! I never touched that. Moreover, even though I
>>>> changed the String to String[], the problem still exists. Really don't
>>>> understand why Web services has such a design.
>>>>
>>>> I use POJO to implement my Web services. Could you give me a hand?
>>>>
>>>> Thanks,
>>>> LB
>>>>
>>>>
>>>> On Mon, Mar 14, 2011 at 9:49 AM, Martin Gainty <[email protected]>wrote:
>>>>
>>>>>  it seems that you changed your original input or output message to
>>>>> send array of string to single string or vice versa
>>>>>
>>>>> if you see the operation SelectCategoriedHubByKey make sure your input
>>>>> and output messages reference the ArrayOfString typed element here is an
>>>>> example
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <xsd:schema targetNamespace="http://www.test.org/sample_types";
>>>>>             xmlns:tns="http://www.test.org/sample_types";
>>>>>             xmlns:soap-enc="http://www.w3.org/2001/09/soap-encoding";
>>>>>         xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>>>>   <!--
>>>>>     These will cause errors in generation but are necessary for an XML
>>>>> schema validator
>>>>>     like IBM Schema Quality Checker
>>>>>     <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/";
>>>>>                 schemaLocation="
>>>>> http://schemas.xmlsoap.org/soap/encoding/"/>
>>>>>     <xsd:import namespace="http://www.w3.org/2001/09/soap-encoding";
>>>>>                 schemaLocation="
>>>>> http://www.w3.org/2001/09/soap-encoding"/>
>>>>>   -->
>>>>>   <xsd:complexType name="ArrayOfString">
>>>>>     <xsd:complexContent>
>>>>>       <xsd:restriction base="soap-enc:Array">
>>>>>         <xsd:sequence>
>>>>>           <xsd:element name="stringElement" type="xsd:string"
>>>>> minOccurs="0" maxOccurs="unbounded"/>
>>>>>         </xsd:sequence>
>>>>>         <xsd:attributeGroup ref="soap-enc:arrayAttributes"/>
>>>>>         <xsd:attributeGroup ref="soap-enc:commonAttributes"/>
>>>>>       </xsd:restriction>
>>>>>     </xsd:complexContent>
>>>>>   </xsd:complexType>
>>>>>
>>>>>   <xsd:element name="strings" type="tns:ArrayOfString" nillable="true"
>>>>> minOccurs="1" maxOccurs="1" />
>>>>>
>>>>>
>>>>>
>>>>> <!-- you can reference element name 'strings' for either InputMessage
>>>>> or OutputMessage for your SelectCategoriedHubByKey operation -->
>>>>>
>>>>> Martin
>>>>> ______________________________________________
>>>>> Verzicht und Vertraulichkeitanmerkung/Note de déni et de
>>>>> confidentialité
>>>>>
>>>>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
>>>>> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte
>>>>> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht
>>>>> dient lediglich dem Austausch von Informationen und entfaltet keine
>>>>> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
>>>>> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>>>>>
>>>>> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas 
>>>>> le destinataire prévu, nous te demandons avec bonté que pour satisfaire 
>>>>> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la 
>>>>> copie de ceci est interdite. Ce message sert à l'information seulement et 
>>>>> n'aura pas n'importe quel effet légalement obligatoire. Étant donné que 
>>>>> les email peuvent facilement être sujets à la manipulation, nous ne 
>>>>> pouvons accepter aucune responsabilité pour le contenu fourni.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------
>>>>> Date: Mon, 14 Mar 2011 04:16:07 +0800
>>>>> Subject: Re: NoSuchMethodError: ... (LJava/lang/String)
>>>>> From: [email protected]
>>>>> To: [email protected]
>>>>> CC: [email protected]
>>>>>
>>>>>
>>>>> Dear Andreas,
>>>>>
>>>>> Thanks so much for your reply!
>>>>>
>>>>> Could you please tell me how to solve the problem?
>>>>>
>>>>> Thanks,
>>>>> LB
>>>>>
>>>>> On Mon, Mar 14, 2011 at 3:41 AM, Andreas Veithen <
>>>>> [email protected]> wrote:
>>>>>
>>>>> No, "Ljava/lang/String;" is the type descriptor used by the JVM to
>>>>> represent java.lang.String. The type descriptor for String[] would be
>>>>> "[Ljava/lang/String;".
>>>>>
>>>>> Andreas
>>>>>
>>>>> On Sun, Mar 13, 2011 at 20:31, JOSE L MARTINEZ-AVIAL <[email protected]>
>>>>> wrote:
>>>>> > I think it is trying to invoke a method with a String[] attribute,
>>>>> not
>>>>> > simply a String.
>>>>> >
>>>>> > 2011/3/13 Bing Li <[email protected]>
>>>>> >>
>>>>> >> Dear all,
>>>>> >>
>>>>> >> I am a new Axis2 user. Today I got a weird exception when calling a
>>>>> Web
>>>>> >> service.
>>>>> >>
>>>>> >> This Web service is deployed on Tomcat/Axis2. I need to transmit an
>>>>> object
>>>>> >> (parameter) to it. The object contains a String attribute. The
>>>>> object is
>>>>> >> received correctly. However, when calling a local method on the
>>>>> remote
>>>>> >> machine, it got the following errors. I noticed that the method
>>>>> >> SelectCategoriedHubByKey(Ljava/lang/String key) cannot be found on
>>>>> the
>>>>> >> machine. Actually, the method should be
>>>>> SelectCategoriedHubByKey(String
>>>>> >> key). Why is the parameter changed from String to LJava/lang/String?
>>>>> How to
>>>>> >> solve the problem?
>>>>> >>
>>>>> >> Thanks so much!
>>>>> >> LB
>>>>> >>
>>>>> >> [ERROR]
>>>>> >>
>>>>> com.greatfree.OODB.CategorizedHubDB.SelectCategorizedHubByKey(Ljava/lang/String;)Lcom/greatfree/OODB/CategorizedHub;
>>>>> >> java.lang.reflect.InvocationTargetException
>>>>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)
>>>>> >>         at
>>>>> >>
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> >>         at
>>>>> >>
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> >>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
>>>>> >>         at
>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144)
>>>>> >>         at
>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>>>>> >>         at
>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237)
>>>>> >>         at
>>>>> >>
>>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
>>>>> >>         at
>>>>> >>
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>> >>         at
>>>>> >>
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>> >>         at java.lang.Thread.run(Thread.java:662)
>>>>> >> Caused by: java.lang.NoSuchMethodError:
>>>>> >>
>>>>> com.greatfree.OODB.CategorizedHubDB.SelectCategorizedHubByKey(Ljava/lang/String;)Lcom/greatfree/OODB/CategorizedHub;
>>>>> >>         at
>>>>> >> com.greatfree.HTTP.CategorizedHubService.getCategorizedHub(Unknown
>>>>> Source)
>>>>> >>         ... 29 more
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to