users@jax-rpc.java.net

Re: dynamic Proxy Client!

From: Anne Thomas Manes <atmanes_at_gmail.com>
Date: Sun, 13 Nov 2005 11:24:06 -0500

That should solve the problem.

btw -- do you have a namespace attribute in your <soap:body> definition? You
should not when using Document style.

If not, perhaps someone from the JAX-RPC team could explain why the proxy
interface doesn't seem to be able to handle separate namespaces.

Anne

On 11/13/05, Oancea Daniel <doancea_at_gmail.com> wrote:
>
> So, what you suggest? Tu use the same namespace for WSDL and Schema type's
> ?
>
>
> On 11/13/05, Anne Thomas Manes <atmanes_at_gmail.com> wrote:
> >
> > The operation is define in the WSDL namespace, but the element that goes
> > in your SOAP message is defined in your schema.
> >
> > On 11/12/05, Oancea Daniel < doancea_at_gmail.com> wrote:
> > >
> > > I agree with you, but it seams that isn't able to find my operation
> > > name. The question is why?
> > > "raiseAlarm" is an operation defined in the WSDL namespace. Sow, when
> > > I put the WSDL namespase I got the error regarding the fact that doesn't
> > > find this operation. I can not use schema namespace because operation
> > > doesn't belong to this.
> > > Here it is something that I don't understand!
> > > Any suggestion?
> > >
> > > Here is my entire client code. Is very simple one:
> > > ---------------------------------------------
> > > package client;
> > >
> > > import java.net.MalformedURLException;
> > > import java.net.URL;
> > >
> > > import javax.xml.namespace.QName;
> > > import javax.xml.rpc.Service;
> > > import javax.xml.rpc.ServiceException;
> > > import javax.xml.rpc.ServiceFactory;
> > >
> > >
> > > public class SOAPClient_old {
> > >
> > > //create a SOAP client using Dynamic Proxy Client.
> > >
> > > private static String serviceName = "MonitorSvcService";
> > > private static String qPortName = "MonitorSvcPort";
> > > private static String url = "http://localhost:8081/MonitorSvc/Alarm";
> > > private static String uriName = "http://www.test.com/MonitorSvc.wsdl";
> > >
> > >
> > > public static void main(String[] args) {
> > >
> > > StringBuffer buffer = new StringBuffer(url);
> > > buffer.append("?WSDL");
> > >
> > > try {
> > > URL wsdlURL = new URL(buffer.toString());
> > > ServiceFactory factory = ServiceFactory.newInstance();
> > > QName qName = new QName(uriName,serviceName);
> > > Service service = factory.createService(wsdlURL,qName);
> > > MonitorSvc myproxy = (MonitorSvc)service.getPort(new
> > > QName(uriName,qPortName),MonitorSvc.class);
> > > Long id = new Long("234");
> > > float d = (float) 23.0;
> > > myproxy.raiseAlarm(id,"test",d,"test1");
> > >
> > >
> > > } catch (ServiceException e) {
> > > // TODO Auto-generated catch block
> > > e.printStackTrace();
> > > } catch (MalformedURLException e) {
> > > // TODO Auto-generated catch block
> > > e.printStackTrace();
> > > }
> > > }
> > >
> > >
> > > }
> > > -------------------------------------------------------
> > > Daniel
> > >
> > > On 11/12/05, Anne Thomas Manes < atmanes_at_gmail.com> wrote:
> > > >
> > > > Your WSDL namespace is different from your schema namespace. When
> > > > referencing entities from the WSDL, you must use the WSDL namespace. When
> > > > referencing entities from your schema, you must use the schema namespace.
> > > >
> > > > Anne
> > > >
> > > > On 11/11/05, Oancea Daniel < doancea_at_gmail.com> wrote:
> > > > >
> > > > > Hi Anne,
> > > > >
> > > > > I alter the code on your suggestion and I got the following error
> > > > > message:
> > > > >
> > > > > Exception in thread "main" could not find service: {
> > > > > http://www.test.com/MonitorSvc.xsd1}MonitorSvcService<http://www.test.com/MonitorSvc.xsd1%7DMonitorSvcService>in the specified WSDL file. The service names found were: {
> > > > > http://www.test.com/MonitorSvc.wsdl}MonitorSvcService<http://www.test.com/MonitorSvc.wsdl%7DMonitorSvcService>
> > > > > at com.sun.xml.rpc.client.dii.ServiceInfoBuilder.buildServiceInfo(
> > > > > ServiceInfoBuilder.java:108)
> > > > > at com.sun.xml.rpc.client.dii.ConfiguredService.<init>(
> > > > > ConfiguredService.java:62)
> > > > > at com.sun.xml.rpc.client.dii.ConfiguredService.<init>(
> > > > > ConfiguredService.java:48)
> > > > > at com.sun.xml.rpc.client.ServiceFactoryImpl.createService(
> > > > > ServiceFactoryImpl.java:41)
> > > > > at enthrone.dispatcher.snmpMonitor.SOAPClient.main(SOAPClient.java
> > > > > :33)
> > > > >
> > > > >
> > > > > On 11/10/05, Anne Thomas Manes <atmanes_at_gmail.com > wrote:
> > > > > >
> > > > > > I suspect that the correct namespace is
> > > > > > "http://www.test.com/MonitorSvc.xsd1"
> > > > > >
> > > > > > Anne
> > > > > >
> > > > > > On 11/10/05, Anne Thomas Manes < atmanes_at_gmail.com> wrote:
> > > > > > >
> > > > > > > What is the targetNamespace of your schema in the <types>
> > > > > > > section?
> > > > > > > Is it the same as the WSDL tagetNamespace?
> > > > > > >
> > > > > > > The namespace in your message will be taken from the schema,
> > > > > > > not from the WSDL.
> > > > > > >
> > > > > > > Anne
> > > > > > >
> > > > > > > On 11/10/05, Oancea Daniel < doancea_at_gmail.com> wrote:
> > > > > > > >
> > > > > > > > Thanks Anne for your reply.
> > > > > > > >
> > > > > > > > I think I'm using the right one! Here is another snippet
> > > > > > > > from my description:
> > > > > > > >
> > > > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > > > > <wsdl:definitions
> > > > > > > > name="MonitorSvc"
> > > > > > > > targetNamespace="http://www.test.com/MonitorSvc.wsdl"
> > > > > > > > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> > > > > > > > xmlns:tns="http://www.test.com/MonitorSvc.wsdl"
> > > > > > > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > > > > > xmlns:xsd1="http://www.test.com/MonitorSvc.xsd1">
> > > > > > > >
> > > > > > > > .............................................................
> > > > > > > >
> > > > > > > > In my client I put something like:
> > > > > > > >
> > > > > > > > ....................................
> > > > > > > >
> > > > > > > > private static String serviceName = "MonitorSvcService";
> > > > > > > > private static String qPortName = "MonitorSvcPort";
> > > > > > > > private static String url = "
> > > > > > > > http://localhost:8081/MonitorSvc/Alarm";
> > > > > > > > private static String uriName = "
> > > > > > > > http://www.test.com/MonitorSvc.wsdl";
> > > > > > > >
> > > > > > > > public static void main(String[] args) {
> > > > > > > >
> > > > > > > > StringBuffer buffer = new StringBuffer(url);
> > > > > > > > buffer.append("?WSDL");
> > > > > > > >
> > > > > > > > try {
> > > > > > > > URL wsdlURL = new URL(buffer.toString());
> > > > > > > > ServiceFactory factory = ServiceFactory.newInstance();
> > > > > > > > QName qName = new QName(uriName,serviceName);
> > > > > > > > Service service = factory.createService(wsdlURL,qName);
> > > > > > > > MonitorSvc myproxy = (MonitorSvc)service.getPort(new
> > > > > > > > QName(uriName,qPortName),MonitorSvc.class);
> > > > > > > > .............................................
> > > > > > > >
> > > > > > > > The SEI it was generated using the -import option in
> > > > > > > > wscompile tool:
> > > > > > > > wscompile -import -d . -nd . -f:norpcstructures
> > > > > > > > config-wsdl.xml
> > > > > > > >
> > > > > > > > Something is wrong but I can not figure what it is.
> > > > > > > >
> > > > > > > >
> > > > > > > > On 11/9/05, Anne Thomas Manes <atmanes_at_gmail.com > wrote:
> > > > > > > > >
> > > > > > > > > Are you sure you're using the correct namespace?
> > > > > > > > >
> > > > > > > > > On 11/9/05, Oancea Daniel < doancea_at_gmail.com> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi everybody,
> > > > > > > > > >
> > > > > > > > > > I try to develop a jax-rpc client using dynamic proxy
> > > > > > > > > > client and I got the fallowing error:
> > > > > > > > > >
> > > > > > > > > > Exception in thread "main" port: {http://www.test.com/MonitorSvc.wsdl}MonitorSvcPort
> > > > > > > > > > <http://www.test.com/MonitorSvc.wsdl%7DMonitorSvcPort>does not contain operation: raiseAlarm
> > > > > > > > > > at
> > > > > > > > > > com.sun.xml.rpc.client.dii.ConfiguredCall.configureCall(
> > > > > > > > > > ConfiguredCall.java:98)
> > > > > > > > > >
> > > > > > > > > > .........................................................................................................................
> > > > > > > > > >
> > > > > > > > > > here is a snippet from my WSDL description:
> > > > > > > > > > ................................................
> > > > > > > > > > <wsdl:portType name="MonitorSvc">
> > > > > > > > > > <wsdl:operation name="raiseAlarm">
> > > > > > > > > > <wsdl:input message="tns:raiseAlarmRequest"/>
> > > > > > > > > > <wsdl:output message="tns:raiseAlarmResponse"/>
> > > > > > > > > > </wsdl:operation>
> > > > > > > > > > </wsdl:portType>
> > > > > > > > > > <wsdl:binding name="MonitorSvcBinding"
> > > > > > > > > > type="tns:MonitorSvc">
> > > > > > > > > > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/
> > > > > > > > > > <http://schemas.xmlsoap.org/soap/http%22/>>
> > > > > > > > > > <wsdl:operation name="raiseAlarm">
> > > > > > > > > > <soap:operation soapAction="raiseAlarm"
> > > > > > > > > > style="document"/>
> > > > > > > > > > <wsdl:input>
> > > > > > > > > > <soap:body parts="raiseRequest" use="literal"/>
> > > > > > > > > > </wsdl:input>
> > > > > > > > > > <wsdl:output>
> > > > > > > > > > <soap:body parts="raiseResponse" use="literal"/>
> > > > > > > > > > </wsdl:output>
> > > > > > > > > > </wsdl:operation>
> > > > > > > > > > </wsdl:binding>
> > > > > > > > > > <wsdl:service name="MonitorSvcService">
> > > > > > > > > > <wsdl:port binding="tns:MonitorSvcBinding"
> > > > > > > > > > name="MonitorSvcPort">
> > > > > > > > > > <soap:address location="
> > > > > > > > > > http://localhost:8081/MonitorSvc/Alarm"/<http://localhost:8081/MonitorSvc/Alarm%22/>
> > > > > > > > > > >
> > > > > > > > > > </wsdl:port>
> > > > > > > > > > </wsdl:service>
> > > > > > > > > >
> > > > > > > > > > what I'm doing wrong here? (why doesn't recognize
> > > > > > > > > > raiseAlarm operation?)
> > > > > > > > > >
> > > > > > > > > > Any suggestion is overcome! thanks
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>