Redirecting a web-service client dynamically?
I have a development server, and a real world server. I also
use the web service wizard to general stubs for consuming web
services else where. The WSDL is identical on both my dev server
and my real world server, but I can't figure out how to dynamically
redirect my application to the real world servers, leaving me no
option but to delete the local references and add the references to
the real world server prior to release.
Anyone know how to dynamically repoint the auto-generated
classes?
I handle urls and pathing by passing root urls into my
applications via flashvars in the html wrapper. That allows a lot
of flexibility, both in development and in production.
However, I do not Use the generated code and do not know how
to prevent the autogeneration process from overwriting manual
changes. Do you regenerate a lot?
Tracy
Similar Messages
-
Dynamic and embeddable web service client
Hello,
I want to write a web service client application that can run on JSE (not requiring JEE5, J2EE 1.4, an enterprise server or anything). This should be no problem with JSE6. However, I would like the client application to run on embedded devices (cell phones, PDA's etc.) as well. So I would like to know if web service clients are supported by the embedded JAVA runtimes in such devices. One additional requirement is that the webservices will only be accessible over SSL. So all clients will need support for SSL as well.
The other problem (and probably the more difficult one) is this: Using the WDSL file, stubs for the client can be generated. However, the WDSL files (at least the ones generated by the SUN enterprise server) contain the IP-address of the server. In the final deployment of the system the IP-address of the server will be different from the one of the development system. Secondly, the same service might be deployed on different servers and needs to be accessible from the same client. So I'm looking for a mechanism to still use stubs generated from the WDSL file, but dynamically configure the IP address of the server to which the client should connect.
Any help here is greathly appreciated.Hey Rishika,
You don't need tomcat to run a client. A web service client does not need a container and can be run without it.
Karan -
Dynamic Logical Port for Web Service Client
Hi *!
We want to use the same Web Service Client code with different Web Service instances running on different systems. So I need to configure the logical port (especially the URL of the endpoint) dynamically at runtime.
Please give me a hint, how this is done.
(we are using WebAS 6.40 SP7)...
Thanks in advance,
FrankHi Frank,
I hope you were able to solve your issue on you own in the meantime.
I was looking for the answer to this question today. This was the only thread I found on SDN. Unfortunately, it did not contain an answer yet. I was able to figure out a way to set the endpoint address dynamically after searching help.sap.com and after examining the interfaces offered by the Stub (logical port in this case) classes.
Here's an extract from my code:
// Connect to JNDI context
InitialContext ic = new InitialContext();
// Get reference to web service proxy from JNDI context
Z_MSC_GET_SCHEDULE_WSDService service =
(Z_MSC_GET_SCHEDULE_WSDService) ic.lookup("wsclients/proxies/iot-online.de/msc~srv_ejb~proxy/de.iot_online.msc.proxy.ScheduleReaderProxy");
// Get reference to logical port from web service proxy
Z_MSC_GET_SCHEDULE_WSD logicalPort = service.getLogicalPort();
// Set URL of web service Endpoint
logicalPort._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://<FQDN>:8010/sap/bc/srt/rfc/sap/Z_MSC_GET_SCHEDULE_WSD?sap-client=100");
This is explained on
http://help.sap.com/saphelp_nwce10/helpdata/en/45/113a1221337249e10000000a155369/frameset.htm
You can also set the credentials (username / password) with the method _setProperty.
Best regards
Christian -
Hi,
I am new to web services. I need to write a web service client that invokes a web service method. The method takes complex types as parameter and returns a complex type.what kind of client(static stub, dynamic proxy or DII) should I use to invoke such kind of method from a standalone java application?
Thanks in advance.yes, you are right. stubs must be regenerated when the service definition changes. But is it possible to write a standalone client using dynamic proxy to invoke a web service method that uses complex types as parameters?.
-
Web service client needs to share data with a SOAP Message Handler
I have a web service client that is built using WebLogic 10 clientgen. I also have a Soap Message Handler configured that will create the required Soap Headers for the web service call.
Creating these Soap Headers works great as long as the header data is static but the problem comes up when I need to place some dynamic data in these headers. The web service client has this data and somehow needs to pass it to the Soap Message Handler. It looks like I need to somehow have the client place this data in the MessageContext before the call so the data can be accessed by the Soap Message Handler.
How do I get access to the MessageContext from the client or is there a better way to do this?
Thanks in advance for any help you can give.You may want to check the response to this previous post to see if it yields any ideas for you:
Not able to Pass header info to Microsoft MapPoint WebService using WLS10 -
hi,
i am new to web service technology. i want to create dynamic web service client for a "rpc" style web service in Netbeans.
please, can anybody guide me for this?
thanks in advance.Hi,
To avoid creating new topic I will put my question here.
I try to create new web service (rpc-style) client in netbeans. I have rpc plugin installed. In ejb module node I right click > new > web service client >
I fill all filds, chose rpc-style and > after clicking finish - error occur:java.lang.LinkageError: com/sun/xml/rpc/processor/generator/Names
at org.netbeans.modules.websvc.registry.util.Util.getParameterType(Util.java:856)
at org.netbeans.modules.websvc.registry.jaxrpc.WrapperClientWriter.printOperations(WrapperClientWriter.java:275)
at org.netbeans.modules.websvc.registry.jaxrpc.WrapperClientWriter.writeClass(WrapperClientWriter.java:219)
at org.netbeans.modules.websvc.registry.jaxrpc.Wsdl2Java.createWrapperClients(Wsdl2Java.java:305)
at org.netbeans.modules.websvc.registry.jaxrpc.Wsdl2Java.execute(Wsdl2Java.java:229)
at org.netbeans.modules.websvc.registry.util.Util.createWSJar(Util.java:493)
at org.netbeans.modules.websvc.registry.RegistryViewImpl.registerService(RegistryViewImpl.java:221)
at org.netbeans.modules.websvc.registry.RegistryViewImpl.registerService(RegistryViewImpl.java:159)
at org.netbeans.modules.websvc.registry.netbeans.RegisterViewImplNetBeansSide.registerService(RegisterViewImplNetBeansSide.java:91)
at org.netbeans.modules.websvc.jaxrpc.client.wizard.ClientBuilder.generate(ClientBuilder.java:330)
at org.netbeans.modules.websvc.jaxrpc.client.wizard.JaxRpcClientCreator$2.run(JaxRpcClientCreator.java:319)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
I use netbeans 6.5. In my project I choose java ee 5 as in 1.4 there is no web service client option
Any ideas?
I found some rpc tutorils for netbeans 4.0 but I wonder why it couldn't be done in netbean 6.5
Regards,
Lech -
Web-service client for legacy web service
I currently access a legacy server (Lotus Domino 7) via CORBA. I thought a web service (my second) would be faster, but a whole day's research has uncovered only obsolete or trivial examples.
The WSDL generated by the server is rpc/encoded so wsimport cannot generate the necessary "artifacts" for a web service client.
The web service is simple: it accepts two java.lang.Strings, and returns a java.lang.String of XML. The "dynamic proxy" approach from 1.4.2 seems to have disappeared; I was hoping that approach would let me just hand-code a single "artifact" - an SEI based on the method information in the WSDL.
1) What classes in JAX-WS will let my web service client communicate with rpc?
2) With such a simple signature, do I need any other "artifacts" beyond an SEI?
Thanks for any help!In case anyone's search leads them here, I've posted the solution at:
*[http://www.pby.com/general.nsf/webarticles/dominowebservice01]*
It is an exhaustive article (not "Hello World"!) that goes through several versions of the web service and client - hopefully explaining all* pieces of the puzzle:
~ web service code,
~ WSDLs
~ schema
~ thoroughly-documented clients that do and do not use JAXB
~ ... that use generated artifacts
~ ... that customize existing POJOs
~ the SOAP messages generated in each direction
~ the necessary JAXB annotations
~ explanations of how the code works
~ explanations of how namespaces affect the code
~ on and on and on...
My constant goal was to write an uncomplicated solution that uses as few artifacts (two) and annotations as possible. The end result is a small, fast JAX-WS 2.0 client that uses JAXB to invoke and consume a secured Domino 7 (1.4.2 JVM + AXIS) web service, using RPC/literal SOAP messages. -
What Web service client does Omniportlet use?
Does the omniportlet uses direct SOAP calls for Web service or use AXIS calls??
Thanks
JOHello,
As you may know OracleAS / JDeveloper has its own Web Service runtime and set of Tools. Omniportlet uses the Oracle AS Web Service Client API and WSDL tools to invoke dynamically SOAP based Web Services.
I am curious to know why are you asking this question? Do you have specific requirements?
Regards
Tugdual Grall -
Change jsp's in web service client when creating a web service in WID
Hi, Actually , when we a web service, on websphere Integration Developer,JSP's get generated after creating the web service client.
Those JSP's are named as input.html, invoke.jsp etc, I need to change the jsp's for good look and feel,
But I am unalble to do that as there is no configuration information included in the jsps created by default, Please let me know, if any has come across this kind of situation and knows how to deal with.Hi,
Not sure if you can get answer to WID specific questions on the Oracle-WebServices forum. Here, we are mainly talking about SOAP and WSDL, and mostly with the Oracle OC4J implementation.
When you generate a static proxy, you can set the endpoint URL dynamically using a helper method on the class generated by JDeveloper - look for setEndpoint()
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Stub;
public void setEndpoint(String endpoint) {
((Stub) _port)._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, endpoint);
}The generated code uses the JAX-RPC APIs under the cover, which may also apply to Websphere's internal implementation.
Hope it Helps,
-Eric -
XML Parser Error while creating Web service Client using JAX RPC
hello evryone,
Im facing XML Parser Error while creating web service client using JAX RPC. Im using Net Beans IDE for development purpose. I have wrote configuration file for client. Now i want to create Client stub. However i dont know how to do this in Net Beans. So i tried to do it from Command promt using command :
wscompile -gen:client -d build -classpath build config-wsdl.xml
here im getting Error:
error parsing configuration file: XML parsing error: com.sun.xml.rpc.sp.ParseException:10: XML declaration may only begin entities
Please help me out.
Many thanks in advance,
KaceeCan i use the client generated using jdeveloper 11g to import into the oracle forms 10g, i.e., form builder 10g. Currently this is the version we have in our office.
-
How to prevent downloading wsdl in weblogic web service client
Hi,
I get a problem regarding weblogic web service client. My working environment:
weblogic server 8.1
Windows XP SP2
JDK 1.4
I use the weblogic tool to generate the client jar file from the wsdl file.
<target name="generate-client">
<clientgen wsdl="ACCESS.wsdl"
packageName="xxxxxx.client"
clientJar="${client}/${AccessClient_jar_file}"
keepGenerated="true"
saveWSDL="true"
/>
<javac srcdir="${source}"
destdir="${client}"
includes="**/AccessClient.java">
<classpath>
<pathelement path="${client}/${AccessClient_jar_file}"/>
</classpath>
</javac>
</target>
After that, I create a client java file to invoke the service deploy in the server.
public static void main(String[] argv)
throws Exception
int transactionId = 100;
int id = 1000;
// Setup the global JAXM message factory
System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
// Setup the global JAX-RPC service factory
System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
AccessServicePorts ws = new AccessServicePorts_Impl(argv[0]);
AccessService port = ws.getAccessService();
// Resource - create
Resource resource = new Resource();
resource.setRES_CD("Create ResCo");
resource.setCODE_CODE("code_cod");
resource.setRES_TYPE("Resource typ");
resource.setCOMMON_FIELD(common);
AccessDefaultResult resultItems = port.createResource(resource);
System.out.println("createResource : " + resultItems);
I find that this web service client always issue 2 http requests to invoke an web service method deployed in server.
1st http reqeust:
GET /AccessEpol/EpolServiceSoap?WSDL HTTP/1.1
User-Agent: Java/1.4.2_08
Host: 127.0.0.1:8001
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
the return result is the wsdl downloaded from the server.
2nd http request is the real web service request.
The question is how could I eliminate the 1st http request because it's really unnecessary. I use other web service client like Axis 1.x, Axis client never has the http request to download the wsdl from the server.
I read through weblogic web service document. It do mentions that put saveWSDL="true" in the clientgen ant task. the default value for saveWSDL is true already. I did try saveWSDL="false" also. None of them can eliminate the 1st http request.
appreciate for any answer my question?Hi David,
thanks for the reply.
More or less I agree some points you mentioned above.
I did use Axis 1.x to test the inter-operability. The web service was developed in Weblogic 8.1 and is a part of an existing web application. It will be merged to existing application deployed in weblogic 8.1.
I also program the web service client to test the web service.
The implementation of the server and client will be handed over the project team and training for supporting or continuous development have to be conducted by me. So I don't like to use two types of technologies which will make thing complex.
I found this issue when I tried to protected the web service endpoint, eg http://localhost:7001/epol/service, using the web application Basic mechanism. The wsdl URL http://localhost:7001/epol/service?WSDL is also protected in this case. Unfortunately the username/password pair is not sent to the server when the weblogic client download the WSDL from the server. In this case, the client failed and throw exception. -
Error creating a web service client from th WSDL document (soamanager)
Hello everyone,
we have generate with the wizard a web-service using the function module BAPI_CONTROL_RECIPE_GET_LIST. Then we have generated with SOAMANAGER the end point. As test, we have used a web-service explorer of Eclispe and we can retrieve without problems the data.
Then we wanted to generate the web-servcie client with Eclipse Galileo (3.5.0) wiith the server GlassFish v2.1 Java EE 5 we first installed the WSIT jars, in order to support WS-RM protocol
We have started the generation based on the document obtainend within the soamanager under the "Open WSDL document for selected binding" link.
We have tried it several times and we always got the following error is:
IWAB0399E Error in generating Java from WSDL: WSDLException (at /wsdl:definitions/wsdl:portType/wsp:Policy):
faultCode=INVALID_WSDL: Encountered unexpected element 'Policy'.: <br>
WSDLException (at /wsdl:definitions/wsdl:portType/wsp:Policy): faultCode=INVALID_WSDL: Encountered unexpected element 'Policy'.:
at com.ibm.wsdl.util.xml.DOMUtils.throwWSDLException(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parsePortType(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516)
at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
at java.lang.Thread.run(Unknown Source)
Do you know if we took the right document in order to generate the web-service client? Do we need to have some specifics settings in the configurations of th endpoint? (provider security, transport settings, etc...?)
If needed, or if someone would be nice enough to try to generate it on its side, I can post here the whole wsdl document, but due to its length, I first wait your comments.
Thanks a lot in advance for your feed-back
best regards
Pierre-André
addtions:
maybe this should have been better posted within the forum Service-Oriented Architecture than standards?
I forgot to mention the following threads, which seems to me to be somehow in this direction. But I do not get really how I could use them, or how is is releated.
Edited by: Pierre-andre Jacquod on Sep 23, 2009 4:02 PMHi,
I am facing the same issue while generating the client java class from IBM RAD 6.0.
Here is the error I am getting.
WSDLException (at /wsdl:definitions/wsdl:portType/wsp:Policy): faultCode=INVALID_WSDL: Encountered unexpected element 'Policy'.:
[java] at com.ibm.wsdl.util.xml.DOMUtils.throwWSDLException(Unknown Source)
[java] at com.ibm.wsdl.xml.WSDLReaderImpl.parsePortType(Unknown Source)
[java] at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
[java] at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
[java] at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
[java] at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
[java] at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516)
[java] at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
[java] at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
[java] at java.lang.Thread.run(Thread.java:571)
Please guide me to resolve this issue.
Thanks & Regards,
Vijay -
Oracle Database Web Service Client using UTL_DBWS :: ORA-29532 Error
Hi,
I have the Oracle Database 10.2.0.1.0 :-
SQL> select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - ProductionI have written a simple Web Services Client using the classes gfrom the UTL_DBWS package. I loaded the JAR file dbwsclient.jar in the SYS Schema and I am trying to use it in the USF Schema.
However, I have hit this error & I ma unable to proceed :-
SQL> select get_stock_price from dual;
select get_stock_price from dual
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.IllegalAccessException: javax.xml.rpc.ServiceException:
java.security.AccessControlException: the Permission
(java.lang.RuntimePermission getClassLoader) has not been granted to USF. The
PL/SQL to grant this is dbms_java.grant_permission( 'USF',
'SYS:java.lang.RuntimePermission', 'getClassLoader', '' )
ORA-06512: at "USF.UTL_DBWS", line 193
ORA-06512: at "USF.UTL_DBWS", line 190
ORA-06512: at "USF.GET_STOCK_PRICE", line 17Can you please help me with this ?
Regards,
SandeepHi,
The error message said
the Permission(java.lang.RuntimePermission getClassLoader) has not been granted to USF.
I'd follow the suggestion
The PL/SQL to grant this is dbms_java.grant_permission( 'USF','SYS:java.lang.RuntimePermission', 'getClassLoader', '' )
In case you have not done so, consult the Callout Users Guide @
http://www.oracle.com/technology/sample_code/tech/java/jsp/callout_users_guide.htm
Kuassi http://db360.blogspot.com -
Deploying Web Service clients to earlier versions of AS
Hello,
I'm using JDeveloper to create web service proxy for existing service to use in my Web Service client. For development, I'm using JDeveloper 10.1.3.3, for deployment of client application I'm using Application Server 10.1.3.0.
The problem is that AS 10.1.3.0 contains other versions of the libraries, for example, wsclient.jar, so, there's an error using Web Service Proxy (stub) as method setSOAPVersion() doesn't exist.
The question is how can I use generated stub with earlier versions of Application Server.
I've tried some things, but they didn't work. Maybe I did something wrong and step-by-step guidelines to deploy application are needed - I hope, it could be useful not only for me.
So, I found JDev 10.1.3 Release Notes (http://www.oracle.com/technology/products/jdev/htdocs/10.1.3.0.3/readme.html) and the following abstract:
Workaround for URL / WS Data Control Apps When Deploying to Third Party Application Servers or Oracle Application Server 10.1.2 (4931009)
1. Copy the following JAR files to your target application server along with the rest of the ADF installed JAR files. The following JAR files are available under your JDeveloper's home directory.
bc4j/jlib/dc-adapters.jar
bc4j/jlib/adf-connections.jar
j2ee/home/lib/http_client.jar
webservices/lib/wsdl.jar
webservices/lib/orajaxr.jar
webservices/lib/orawsrm.jar
webservices/lib/wsclient.jar
webservices/lib/orasaaj.jar
webservices/lib/xsdlib.jar
webservices/lib/mdds.jar
jlib/osdt_core.jar
jlib/osdt_cert.jar
jlib/osdt_xmlsec.jar
jlib/osdt_wss.jar
jlib/osdt_saml.jar
jlib/ojpse.jar
jlib/oraclepki.jar
webservices/lib/wssecurity.jar
webservices/lib/orawsdl.jar
j2ee/home/jazncore.jar
2. Shutdown the application server and modify the application server's class path to include all of the JAR files that were extracted from the archive. Please refer to the application server documentation for details on how to modify the class path.
3. Restart the application server. You are now ready to deploy / run the application successfully.
So, I've created a new Shared Library with Enterprise Manager, uploaded all this files and, deploying application, checked this library too. This didn't help.
Thanks in advance, ValeriyHi Valeriy,
I have exactly the same problem. Have you been able to resolve this yet?
Thanks
Stu -
Setting timeout of web service client
I created a web service client using the java proxy for
a web service by running my web service in weblogic workshop test browser and by using
the jar file created by clicking on "Java Proxy" button.
i am calling my web service my adding code similar to this and it works
HelloWorld_Impl proxy = new HelloWorld_Impl();
HelloWorldSoap soapProxy = proxy.getHelloWorldSoap();
But, i am not sure how to set the timeout of my client programatically.
Is there a way to do this ?
Any help is greatly appreciated.Anyway,
I figured it out myself, by looking at other posts and applying some reflection API
HelloWorld_Impl proxy = new HelloWorld_Impl();
HelloWorldSoap soapProxy = proxy.getHelloWorldSoap();
// I learnt that this soapProxy is infact an object of HelloWorldSoap_Stub class
HelloWorldSoap_Stub myStub = (HelloWorldSoap_Stub)proxy.getHelloWorldSoap();
BindingInfo bInfo = (BindingInfo)myStub._getProperty("weblogic.webservice.bindinginfo");
bInfo.setTimeout(5); //secs
myStub._setProperty("weblogic.webservice.rpc.timeoutsecs", "5"); // secs
// finally you can call the methods of the web service
soapProxy.Hello();
Please be aware that, upon time out, you would get an exception : <class = java.rmi.RemoteException
cause = javax.xml.rpc.soap.SOAPFaultException: javax.xml.rpc.JAXRPCException:java.net.SocketTimeoutException: Read timed out.>
Also, my env : Weblogic 8.1 SP4
Maybe you are looking for
-
How do i transfer all the music in my itouch to my computer? it is not purchsed from itunes
im looking for a way to save all the music in my ipod to my computer because it is not saved in my itunes library. the music is not purchased from itunes. i want to have a copy of all the music in my computer. i really would appreciate some advice an
-
CS5 Crashes using Image Processor from Bridge
Photoshop CS5 64 and 32 crashes when using the image processor from Bridge after 200 images or so. Converting 1000 RAW files to PSD or PSD to JPEG takes multiple reloads. any ideas?
-
I WANT TO REMOVE BABYLON SEARCH WHICH APPEARS WHENEVER I START FIREFOX
In addition to above I wish to inform you that Babylon addon is not available in my computer so that I may remove the same. I suspect some scam as I want Google as my default web browser & I want that whenever I start Firefox I should see startup pag
-
IPhone 5 and iPad mini's usb personal hotspot on 10.8.4 suddenly stopped working!
Let me make it clear that its working fine on wifi and bluetooth on both the devices. for some reason, it has stopped working via usb on both the devices at once. i have a MBP 2010 with Mountain Lion 10.8.4 i have tried with different lightning cable
-
What's coming next in Adobe Media Encoder
what's coming in the next major update to Adobe Media Encoder, including DCP export and AS-11 export: http://adobe.ly/Pj4i4w