JWSDP 2.0 Webservices client Error
Hi,
I have generated a client stubs for RPC/Encoded style webservices using wscompile tool of JWSDP 2.0. But when i run the client, i get following error
no serializer is registered for (class [Lcom.test.mywebservices.service.TemplateVariable;, {http://com.test.mywebservices/types}ArrayOfTemplateVariable)
at com.sun.xml.rpc.encoding.TypeMappingUtil.getSerializer(TypeMappingUtil.java:51)
at com.sun.xml.rpc.encoding.InternalTypeMappingRegistryImpl.getSerializer(InternalTypeMappingRegistryImpl.java:376)
at com.test.mywebservices.service.TemplateVariables_SOAPSerializer.initialize(TemplateVariables_SOAPSerializer.java:28)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.initialize(ReferenceableSerializerImpl.java:65)
at com.sun.xml.rpc.encoding.InternalTypeMappingRegistryImpl.getSerializer(InternalTypeMappingRegistryImpl.java:381)
The client is embedded in my j2ee application and i am deploying it on jboss 4.2.2 with jdk 5.0.
Please help.
Thanks
Hi,
I reselved the problem by just copying the FastInfoset to the jaxrpc\lib directory (I am sure this should work in a different way).
Well, the next problem I am getting is that the "XMLStreamWriter" class cannot be found. This class is contained in jsr173_api.jar.
I guess my main question is the following:
Which projects are necessary to get this simple helloWorld example to work?
I did set the JWSDP_HOME varible. Is there another setting I have to make to have all necessary jar-files available and to be able to run the samples?
Could anybody point me to a tutorial that does not only show a few lines of code (as the HelloWorld sample in the JWSDP-Tutorial) but that would instead lead me through a step-by-step sample application that I write by myself and actually runs at the end? The example in the JWSDP-Tutorial uses all kinds of existing config files which are not explained.
Thanks for your help.
Similar Messages
-
I am Getting the classcast error while using the webservice client
Hi ,
Iam getting classcast exception while trying to get the connection Object throurh the webservice client.
The details are:
the ra.xml
<resourceadapter-version>1.6</resourceadapter-version>
<resourceadapter>
<resourceadapter-class>oracle.apps.contactCenter.mct.model.connector.CCAResAdapterImpl</resourceadapter-class>
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-class>oracle.apps.contactCenter.mct.model.connector.CCAMangConnFactImpl</managedconnectionfactory-class>
<connectionfactory-interface>oracle.apps.contactCenter.mct.publicModel.connector.MCTConnectionFactIF</connectionfactory-interface>
<connectionfactory-impl-class>oracle.apps.contactCenter.mct.model.connector.CCAConnectionFactImpl</connectionfactory-impl-class>
<connection-interface>oracle.apps.contactCenter.mct.publicModel.connector.MCTConnectionIF</connection-interface>
<connection-impl-class>oracle.apps.contactCenter.mct.model.connector.CCAConnectionImpl</connection-impl-class>
</connection-definition>
<transaction-support>NoTransaction</transaction-support>
<reauthentication-support>false</reauthentication-support>
</outbound-resourceadapter>
</resourceadapter>
The weblogic-ra.xml
<enable-access-outside-app>true</enable-access-outside-app>
<outbound-resource-adapter>
<connection-definition-group>
<connection-factory-interface>oracle.apps.contactCenter.mct.publicModel.connector.MCTConnectionFactIF</connection-factory-interface>
<connection-instance>
<jndi-name>MctEIS11/connFctryCCA</jndi-name>
<connection-properties>
<pool-params>
<initial-capacity>5</initial-capacity>
<max-capacity>10</max-capacity>
<capacity-increment>1</capacity-increment>
</pool-params>
</connection-properties>
</connection-instance>
</connection-definition-group>
</outbound-resource-adapter>
</weblogic-connector>
The web.xml
<servlet>
<servlet-name>MyWebService1SoapHttpPort</servlet-name>
<servlet-class>myapp.Class1JCA</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyWebService1SoapHttpPort</servlet-name>
<url-pattern>/MyWebService1SoapHttpPort</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
</web-app>
The client is
Context m_context;
MCTConnectionIF m_connection = null;
Hashtable env = new Hashtable();
env.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
env.put(Context.PROVIDER_URL, "t3://localhost:7101");
try {
m_context = new InitialContext(env);
System.out.println("Got the context objNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN");
MCTConnectionFactIF m_cxFactory = null;
Object objFactory = null;
objFactory = m_context.lookup("MctEIS11/connFctryCCA");
System.out.println(objFactory.toString());
m_cxFactory = (MCTConnectionFactIF)objFactory;
System.out.println(m_cxFactory.toString());
m_connection = (MCTConnectionIF)m_cxFactory.getConnection(); //
When i run this i am getting the exception as
Entering!!!!!!!!!!!!!!!!!!!!!
Got the context objNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[oracle.apps.contactCenter.mct.model.connector.CCAConnectionFactImpl@14bc17f|mailto:oracle.apps.contactCenter.mct.model.connector.CCAConnectionFactImpl@14bc17f]
java.lang.ClassCastException: oracle.apps.contactCenter.mct.model.connector.CCAConnectionFactImpl cannot be cast to oracle.apps.contactCenter.mct.publicModel.connector.MCTConnectionFactIF
at myapp.Class1JCA.GetConnection(Class1JCA.java:47)
I have checked that the jar files are matching in both client an connector side
Please help me on thisIs that ever running ? Where/how did you installed tuxedo ? Which OS user was used for tuxedo install ?
Nicolas. -
Webservice client is not working for secured service
Hi Experts,
Currently i am facing issue when i try to access the secured webservice,
I used jdeveloper 11.1.2.1.0 to create the webservice client proxy and found the following error if i invoke the service,
I am using the following code to access the service,
URL url = new URL(".", wsdl_url);
MyService myservice = new MyService(url, new QName("urn:drs.test.com",
"MyService"));
myTester = myservice .getTester();
Map<String, Object> reqContext = ((BindingProvider) myTester ).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "user name");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
May i know the reason for this issue?
javax.wsdl.WSDLException: WSDLException: faultCode=INVALID_WSDL: Invalid XML in source with PublicId: null: oracle.xml.parser.v2.XMLParseException: Whitespace required.
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:344)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:294)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:278)
at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDLInternal(CachedWSDLReader.java:531)
at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDL(CachedWSDLReader.java:484)
at oracle.jdeveloper.webservices.wsdl.CachedWSDLReader.readWSDL(CachedWSDLReader.java:455)
at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel.fetchWSDL(SpecifyWsdlPanel.java:1050)
at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel$1.run(SpecifyWsdlPanel.java:364)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
at java.lang.Thread.run(Thread.java:662)
Caused by: oracle.xml.parser.v2.XMLParseException: Whitespace required.
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:323)
at oracle.xml.parser.v2.XMLReader.scanQuotedString(XMLReader.java:1831)
at oracle.xml.parser.v2.XMLReader.scanQuotedString(XMLReader.java:1939)
at oracle.xml.parser.v2.NonValidatingParser.parseDoctypeDecl(NonValidatingParser.java:489)
at oracle.xml.parser.v2.NonValidatingParser.parseProlog(NonValidatingParser.java:363)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:321)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:226)
at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:155)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:337)Hi
I am facing similar issue but with Custom Adapter . I copied the axis jars under the JavaTasks folder but it does not help.
I then copied them under the oim.ear/APP_INF/lib and restarted the OIM managed server but somehow even that does not help.
I get following error.
Caused by: java.lang.NoSuchMethodError: org/apache/axiom/om/OMAbstractFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;
at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:150)
at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:133)
at org.apache.axiom.om.OMXMLBuilderFactory.createOMBuilder(OMXMLBuilderFactory.java:104)
at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:590)
at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:575)
at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:97)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:90)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:857)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:151)
Any pointer on how I can try to resolve it.
Regards
Abhinav -
Invoking a bpel process using webservice client
I am not able to run the sample webservice client from
102.InvokingProcesses/ws.
When I try my own program for 132.UserTasks(very similar to the example program),
The correct input looks like
<inputVariable>
- <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
- <ns1:stockReviewSheet xmlns:ns1="http://samples.otn.com">
<ns1:symbol>ORCL</ns1:symbol>
<ns1:targetPrice>100.0</ns1:targetPrice>
<ns1:currentPrice>100.0</ns1:currentPrice>
<ns1:action>200</ns1:action>
<ns1:quantity>122</ns1:quantity>
</ns1:stockReviewSheet>
</part>
</inputVariable>
While from the invoking process whatever I give comes as
<ns0:stockReviewSheet>
<action>buy</action>
<currentPrice>122.23</currentPrice>
<quantity>100</quantity>
<symbol>ORCL</symbol>
<targetPrice>10.23</targetPrice>
</ns0:stockReviewSheet>
I am using the version 10.1.3 and the error I get on the application side is
07/08/27 17:42:20.757 UserTaskSampleUI: Servlet error
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at java.util.Collections$UnmodifiableList.get(Collections.java:1155)
at displayTask.jspService(_displayTask.java:105)
at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Can anybody point me to invocation of bpel process via web service for complex object types like User for 10.1.3??
Any input would be highly useful!!!
Message was edited by:
user576399
Message was edited by:
user576399Sancho,
Thanks for the prompt reply. We trying to automate the following process:-
1. The user select multiple documents from a folder in a library that contains all released documents.
2. He then locks the documents.
3. Selects the locked documents and copies it to a folder in the personal library.
We are trying to lock and copy the documents as a 1 step process, because its difficult for the users to select all of the documents locked earlier and then copy it the personal library.
We are trying to take the folder name as the user parameter, when the files are locked, so that the process and create the lock the files, create the folder and copy the files in this folder.
Thanks again for your time and help.
Hetal -
WebService Client - how to enable HTTP Compression
Hi
I have written a simple WebService Client. The WebService expects that the WebService clients enable HTTP compression. This is the exact text from the docs:-
""1. Client should be HTTP Compression enabled
HTTP Compression had been made mandatory for API�s. Thus API�s client should
include �Accept-Encoding: zip� header as part of request and should be able to
handle compressed data. Please note that system will send an error message if client
are not http compression enabled saying client should be compression enabled."
I do not know how to enable HTTP compression in the WebService Client. The method called is "GetInstantaneousFlowData". It accepts no arguments and returns xsd:datetime.
The wsdl can be found at:-
http://energywatch.natgrid.co.uk/EDP-PublicUI/PublicPI/InstantaneousFlowWebService.asmx?WSDL
Can someone please help :-
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import java.util.Calendar;
public class TestNGPubTime4 {
public static void main(String[] args) throws Exception {
// Setup the global JAX-RPC service factory
System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
// create service factory
ServiceFactory factory = ServiceFactory.newInstance();
// define qnames
String targetNamespace = "http://www.NationalGrid.com/EDP/BusinessEntities/Public/";
QName serviceName = new QName(targetNamespace, "InstantaneousFlowWebService");
QName portName = new QName(targetNamespace, "InstantaneousFlowWebServiceSoap");
QName operationName = new QName("http://www.NationalGrid.com/EDP/UI/GetInstantaneousFlowData",
"GetLatestPublicationTime");
// create service
Service service = factory.createService(serviceName);
// create call
Call call = service.createCall();
// set port and operation name
call.setPortTypeName(portName);
call.setOperationName(operationName); // add parameters
call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://www.NationalGrid.com/EDP/UI/GetInstantaneousFlowData");
// call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "http://schemas.xmlsoap.org/soap/encoding/");
call.setReturnType(new QName( "http://www.w3.org/2001/XMLSchema","datetime") );
// set end point address : soap address location
call.setTargetEndpointAddress("http://energywatch.natgrid.co.uk/EDP-PublicUI/PublicPI/InstantaneousFlowWebService.asmx");
// invoke the remote web service
Calendar result = (Calendar) call.invoke(new Object[] {});
System.out.println("result=" + result);
}Rishika,
Thanks for your reply.
Could I get clariffication on some more thing?
I am using Axis 1.4 version. And I am able to implement the gzip while doing the following steps.
1) Change the pivote value to CommonsHTTpSender.
<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender"/>
2) public class RetreiveReservationsSOAPBindingStubLocal extends RetreiveReservationsSOAPBindingStub.
I Override the method to support GZIP.
org.apache.axis.client.Call _call = super.createCall();
call.setOperation(operations[0]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("retreiveReservations");
_call.setEncodingStyle(null);
call.setProperty(org.apache.axis.client.Call.SENDTYPE_ATTR, Boolean.FALSE);
call.setProperty(org.apache.axis.AxisEngine.PROPDOMULTIREFS, Boolean.FALSE);
call.setProperty(HTTPConstants.MCACCEPT_GZIP, Boolean.TRUE);
call.setProperty(HTTPConstants.MCGZIP_REQUEST, Boolean.TRUE);
call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11CONSTANTS);
_call.setOperationName(new javax.xml.namespace.QName("", "retreiveReservations"));
super.setRequestHeaders(_call);
super.setAttachments(_call);
Object resp = call.invoke(new Object[] {retreiveReservationsRequest});
I am able to send and receive the request and response in gzip encoded format.
Now my clarrification is,
Is it possible to set the piote value to CommonsHTTPSender for the transport http through my code?
How could I set the values from code?
Reason is, I don't want to manually edit the axis 1.4's client-config.wsdd
Since this is very critical thing, please please help me.
Thanks in advance.
Regards,
Nishad Ponery -
Netbeans 5.5 WebService Client - How do I pass a parameter to the service?
I'm using Netbeans 5.5 and have generated a webservice client (JAX-WS 2.0) off of the existing WSDL. The webservice requires me to pass it some information. Per the generated code, it is expecting an EncryptedData object. The problem is, I have no idea what the content of this data object should be as it pertains to an anonymous complex type. The code generated for this class is listed below. Any ideas? By the way, I know what SOAP should be generated... I just don't know how to stick the soap information into this EncryptedData object. Thanks!
* <p>Java class for anonymous complex type.
* <p>The following schema fragment specifies the expected content contained within this class.
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <any/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
public static class EncryptedData {
@XmlMixed
@XmlAnyElement(lax = true)
protected List<Object> content;
* Gets the value of the content property.
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the content property.
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getContent().add(newItem);
* </pre>
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Object }
* {@link String }
public List<Object> getContent() {
if (content == null) {
content = new ArrayList<Object>();
return this.content;
Message was edited by:
Tosa_Developerhello,
I have done exactly as you have mentioned but I am facing prob passing String or XML data in the newItem variable:
If I run the below code in jsp --->
EncryptedData eD=new EncryptedData ();
String newItem="test";
eD.getContent().add(newItem);
port.webMethod(eD);
I encouter the following error at runtime:
javax.xml.bind.MarshalException - with linked exception: [com.sun.istack.SAXException2: unable to marshal type "java.lang.String" as an element because it is missing an @XmlRootElement annotation]
Pls help me pass either XML or String value to the webservice inside this encrpteddata.
Thanx 4 ton 4 ur time and help. -
SSL WebServices config error ? trust failure
I’m at a loss in getting SSL to work with 7.0’s Web Services. I compiled and ran
the basic javaclass example using http. I’m using the demo cert provided with
WLS. I haven’t changed any admin console SSL settings. Then (I think) I followed
the directions for changing it to SSL. I have had no luck and I’ve looked through
many notes in the forums discussing the issue with some solutions and tried several
combinations. I must be overlooking something. Any help is greatly appreciated.
I’d love to see how anyone has modified the sample’s ant “run” task to execute
it.
I can’t get it to work using the web client or a Java client. I’ve also seen
different system property settings mentioned. My local docs mention -Dweblogic.webservice.client.ssl.trustedcerts
but the newer docs mention –Dtrustedfile.
I had recompiled the example specifying the protocol="https" option and redeployed
the ear. Using the web client, I encounter the “Failed to retrieve WSDL from
https://localhost:7002/basic_javaclass/HelloWorld?WSDL. Please check the URL and
the protocol: Write Channel Closed, possible SSL handshaking or trust failure”
error when I try to invoke the service. I have the same error from the Java client.
I tried entering the system password (weblogic). I assume I’m getting this because
of the demo certification issue. When starting the web server, I’ve tried the
following additions using the democert.pem and trusted.crt files. What file should
I reference?
Here is my WLS server startup option additions attempting to get it to run:
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dtrustedfile=C:\bea\weblogic700\user_projects\wlsexamples\democert.pem
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.webservice.client.ssl.trustedcerts=C:\bea\weblogic700\user_projects\wlsexamples\democert.pem
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.webservice.client.ssl.strictcertchecking=false
On the Java client side, I have created a new runssl task with the additional
settings. Here is my latest version. I’ve tried multiple combinations. I get
the same error as the web app does.
<target name="runssl" depends="check">
<java classname="examples.webservices.basic.javaclass.Client"
fork="true">
<arg value="https://localhost:7002/basic_javaclass/HelloWorld?WSDL"/>
<sysproperty key="bea.home" value="c:\bea"/>
<sysproperty key="trustedfile" value="C:\bea\weblogic700\user_projects\wlsexamples\trusted.crt"/>
<sysproperty key="weblogic.webservice.client.ssl.trustedcerts" value="C:\bea\weblogic700\user_projects\wlsexamples\trusted.crt"/>
<sysproperty key="java.protocol.handler.pkgs" value="weblogic.webservice.client"/>
<sysproperty key="weblogic. webservice.client.ssl.strictcertchecking" value="false"/>
<sysproperty key="weblogic.webservice.verbose" value="true"/>
<classpath>
<pathelement location="${CLIENT_CLASSES}/${client_jar_file}"/>
<pathelement path="${java.class.path}"/>
<pathelement path="${CLIENT_CLASSES}"/>
<pathelement path="${CLIENT_CLASSES}/webserviceclient+ssl.jar"/>
</classpath>
</java>
</target>
Thanks in advance,
DaveHi Dave,
I had recompiled the example specifying the protocol="https" option and redeployed
the ear. Using the web client, I encounter the “Failed to retrieve WSDL from
https://localhost:7002/basic_javaclass/HelloWorld?WSDL. Please check the URL and
Sounds like the server side is not setup for SSL yet. A quick check is to use netstat -a and see if port 7002 is active. Be sure to
follow the docs (System Admin) carefully and work this issue first, making sure you can at least get to the WSDL before addressing the
other issues. Take a quick look at your server config.xml and there should be a section in the server for SSL that looks something like
this:
<SSL Enabled="true" Name="myserver"
ServerCertificateChainFileName="ca1024.der"
ServerCertificateFileName="democert1024.pem" ServerKeyFileName="demokey1024.pem"
TrustedCAFileName="client2certs.pem"/>
Hope this helps,
Brtuce
Dave Lyons wrote:
I’m at a loss in getting SSL to work with 7.0’s Web Services. I compiled and ran
the basic javaclass example using http. I’m using the demo cert provided with
WLS. I haven’t changed any admin console SSL settings. Then (I think) I followed
the directions for changing it to SSL. I have had no luck and I’ve looked through
many notes in the forums discussing the issue with some solutions and tried several
combinations. I must be overlooking something. Any help is greatly appreciated.
I’d love to see how anyone has modified the sample’s ant “run” task to execute
it.
I can’t get it to work using the web client or a Java client. I’ve also seen
different system property settings mentioned. My local docs mention -Dweblogic.webservice.client.ssl.trustedcerts
but the newer docs mention –Dtrustedfile.
I had recompiled the example specifying the protocol="https" option and redeployed
the ear. Using the web client, I encounter the “Failed to retrieve WSDL from
https://localhost:7002/basic_javaclass/HelloWorld?WSDL. Please check the URL and
the protocol: Write Channel Closed, possible SSL handshaking or trust failure”
error when I try to invoke the service. I have the same error from the Java client.
I tried entering the system password (weblogic). I assume I’m getting this because
of the demo certification issue. When starting the web server, I’ve tried the
following additions using the democert.pem and trusted.crt files. What file should
I reference?
Here is my WLS server startup option additions attempting to get it to run:
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dtrustedfile=C:\bea\weblogic700\user_projects\wlsexamples\democert.pem
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.webservice.client.ssl.trustedcerts=C:\bea\weblogic700\user_projects\wlsexamples\democert.pem
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.webservice.client.ssl.strictcertchecking=false
On the Java client side, I have created a new runssl task with the additional
settings. Here is my latest version. I’ve tried multiple combinations. I get
the same error as the web app does.
<target name="runssl" depends="check">
<java classname="examples.webservices.basic.javaclass.Client"
fork="true">
<arg value="https://localhost:7002/basic_javaclass/HelloWorld?WSDL"/>
<sysproperty key="bea.home" value="c:\bea"/>
<sysproperty key="trustedfile" value="C:\bea\weblogic700\user_projects\wlsexamples\trusted.crt"/>
<sysproperty key="weblogic.webservice.client.ssl.trustedcerts" value="C:\bea\weblogic700\user_projects\wlsexamples\trusted.crt"/>
<sysproperty key="java.protocol.handler.pkgs" value="weblogic.webservice.client"/>
<sysproperty key="weblogic. webservice.client.ssl.strictcertchecking" value="false"/>
<sysproperty key="weblogic.webservice.verbose" value="true"/>
<classpath>
<pathelement location="${CLIENT_CLASSES}/${client_jar_file}"/>
<pathelement path="${java.class.path}"/>
<pathelement path="${CLIENT_CLASSES}"/>
<pathelement path="${CLIENT_CLASSES}/webserviceclient+ssl.jar"/>
</classpath>
</java>
</target>
Thanks in advance,
Dave[att1.html] -
hey, im making a webservice client (implemented in jsp for a course), ive made a simple one in straight java and it works fine, but when made the necessary changes to make it a jsp page, i keep gettting an error when the page is displayed
org.apache.jasper.JasperException: javax/mail/internet/MimeMultipart
javax.servlet.ServletException: javax/mail/internet/MimeMultipart
here is my jsp code, and below is the original client i wrote that works...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Uvic Best Quote Travel</TITLE>
<META NAME="author" CONTENT="[email protected]">
<META NAME="keywords" CONTENT="...">
<META NAME="description" CONTENT="...">
<LINK REL=STYLESHEET
HREF="Site-Styles.css"
TYPE="text/css">
</HEAD>
<BODY>
<%@ include file="./top.htm" %>
<%@ page import="javax.xml.rpc.Stub,uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.*"%>
<%@ page import="java.util.Calendar" %>
<%
try{
uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuote outQuotes[];
uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuoteRequest in0= new uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuoteRequest();
Calendar outwardDate=Calendar.getInstance();
outwardDate.set(2003, 11, 22, 13,04,34);
Calendar returnDate = Calendar.getInstance();
returnDate.set(2003, 11, 29, 13, 04, 34);
String originAirport = "yvr";
String destinationAirport = "lax";
in0.setOutwardDate(outwardDate);
in0.setReturnDate(returnDate);
in0.setOriginAirport(originAirport);
in0.setDestinationAirport(destinationAirport);
SBGGetAirFareQuoteService afs = new SBGGetAirFareQuoteServiceLocator();
SBGGetAirFareQuote af = afs.getSBGGetAirFareQuote();
outQuotes=af.getAirFareQuote(in0);
int i=0;
while(i<outQuotes.length){
System.out.println("quote " + i + "returned: " + outQuotes.getAirlineName() +outQuotes[i].getFare());
i++;
}catch(Exception e){
System.err.println("Execution failed. Exception: " + e);
%>
<!-- Part specific to this page ... -->
</BODY>
</HTML>
now the .java original client code...
package uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes;
import java.util.Calendar;
public class AirFareQuoteClient{
public static void main(String[] args){
try{
uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuote outQuotes[];
System.out.println("1");
uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuoteRequest in0= new uk.co.dsdata.ws.travel.sbg.SBGAirFareQuotes.AirFareQuoteRequest();
Calendar outwardDate=Calendar.getInstance();
System.out.println("2");
outwardDate.set(2003, 11, 22, 13,04,34);
System.out.println("3");
Calendar returnDate = Calendar.getInstance();
returnDate.set(2003, 11, 29, 13, 04, 34);
System.out.println("4");
String originAirport = "yvr";
String destinationAirport = "lax";
System.out.println("5");
in0.setOutwardDate(outwardDate);
in0.setReturnDate(returnDate);
in0.setOriginAirport(originAirport);
in0.setDestinationAirport(destinationAirport);
System.out.println("6");
SBGGetAirFareQuoteService afs = new SBGGetAirFareQuoteServiceLocator();
System.out.println("7");
SBGGetAirFareQuote af = afs.getSBGGetAirFareQuote();
System.out.println("8");
outQuotes=af.getAirFareQuote( in0);
int i=0;
while(i<outQuotes.length){
System.out.println("quote " + i + "returned: " + outQuotes[i].getAirlineName() +outQuotes[i].getFare());
i++;
}catch(Exception e){
System.err.println("Execution failed. Exception: " + e);
thanks
caseyI know that there are tool that can do this conversion try google
-
Problem running ClientGen generated webservice client
I'm using Workshop for Weblogic 10.3 and I'm trying to generate a webservice client. When I generate it with ClientGen and I try to use it I get the following error:
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: weblogic/j2ee/descriptor/ServiceRefHandlerBean
at weblogic.wsee.jaxrpc.HandlerRegistryImpl.<init>(HandlerRegistryImpl.java:32)
at weblogic.wsee.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:88)
at com_service_osadia_interface.wovenware.SERVICE_OSADIA_Impl.<init>(Unknown Source)
at com_service_osadia_interface.wovenware.SERVICE_OSADIA_Impl.<init>(Unknown Source)
at testClient.main(testClient.java:18)
If I add the com.bea.core.descriptor.j2ee_1.1.0.0.jar to the libraries then I get the following error:
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: com/sun/xml/ws/util/JAXWSUtils
at weblogic.wsee.util.is.InputSourceUtil.loadURL(InputSourceUtil.java:44)
at weblogic.wsee.util.dom.DOMParser.getWebLogicDocumentImpl(DOMParser.java:118)
at weblogic.wsee.util.dom.DOMParser.getDocument(DOMParser.java:65)
at weblogic.wsee.wsdl.WsdlReader.getDocument(WsdlReader.java:311)
at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:403)
at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:389)
at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:79)
at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:66)
at weblogic.wsee.jaxrpc.ServiceImpl.loadWsdlDefinition(ServiceImpl.java:476)
at weblogic.wsee.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:119)
at com_service_osadia_interface.wovenware.SERVICE_OSADIA_Impl.<init>(Unknown Source)
at com_service_osadia_interface.wovenware.SERVICE_OSADIA_Impl.<init>(Unknown Source)
at testClient.main(testClient.java:18)
How can I fix it?I didn't see a mistake, but my sample works fine. Are you trying to execute the client from Workshop / Eclipse? If that is the case, then I believe it's a matter of just using the appropriate client libraries, which I believe is your issue even though the error is misleading. You should definitely try using a Java Project for a stand-alone web service invocation. According to this link: http://edocs.bea.com/wls/docs103/webserv_rpc/client.html#wp229351 you simply need 1 jar file named wseeclient.jar on your path, which is archived inside <WL_INSTALL>\wlserver_10.3\server\lib\wseeclient.zip
Once I set up a new Java Project with wseeclient.jar on my path and my clientgen generated classes, I could invoke the sample.
Also, here is what the successful invocation from the command line using (ant build, ant deploy, ant run):
C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\src\examples\webservices\jws_basic\simple>ant build
Buildfile: build.xml
clean:
[delete] Deleting directory C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar
[delete] Deleting directory C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client
server:
[mkdir] Created dir: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar
[jwsc] JWS: processing module /SimpleImpl
[jwsc] Parsing source files
[jwsc] Parsing source files
[jwsc] 1 JWS files being processed for module /SimpleImpl
[jwsc] JWS: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\src\examples\webservices\jws_basic\simple\SimpleImpl.java Validated.
[jwsc] Since compiler setting isn't classic or modern,ignoring fork setting.
[jwsc] Compiling 2 source files to C:\temp\_x58sqp
[jwsc] Since compiler setting isn't classic or modern,ignoring fork setting.
[jwsc] Copying 1 file to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar\SimpleImpl\WEB-INF
[jwsc] Copying 22 files to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar\SimpleImpl\WEB-INF
[jwsc] Copying 2 files to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar\SimpleImpl\WEB-INF\classes
[jwsc] Copying 1 file to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar\SimpleImpl
[jwsc] [EarFile] Application File : C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar\META-INF\application.xml
[AntUtil.deleteDir] Deleting directory C:\temp\_x58sqp
client:
[mkdir] Created dir: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client
[clientgen] Ignoring JAX-WS options - building a JAX-RPC client
[clientgen]
[clientgen] *********** jax-rpc clientgen attribute settings ***************
[clientgen]
[clientgen] wsdlURI: file:/C:/Oracle/wls10.3/wlserver_10.3/samples/server/examples/build/webservicesJwsSimpleEar/SimpleImpl/WEB-INF/SimpleImplService.wsdl
[clientgen] serviceName : null
[clientgen] packageName : examples.webservices.jws_basic.simple.client
[clientgen] destDir : C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client
[clientgen] handlerChainFile : null
[clientgen] generatePolicyMethods : false
[clientgen] autoDetectWrapped : true
[clientgen] jaxRPCWrappedArrayStyle : true
[clientgen] generateAsyncMethods : true
[clientgen]
[clientgen] *********** jax-rpc clientgen attribute settings end ***************
[clientgen] Package name is examples.webservices.jws_basic.simple.client
[clientgen] DestDir is C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client
[clientgen] class name is Simple_Stub
[clientgen] service class name is SimpleImplService
[clientgen] Porttype name is Simple
[clientgen] service impl name is SimpleImplService_Impl
[javac] Compiling 4 source files
[javac] Note: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client\examples\webservices\jws_basic\simple\client\Simple_Stub.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] Compiling 1 source file to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\clientclasses\webservicesJwsSimple_client
[jar] Updating jar: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\examplesWebApp\WEB-INF\lib\jws_basic_simple.jar
[copy] Copying 1 file to C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\examplesWebApp
build:
BUILD SUCCESSFUL
Total time: 22 seconds
C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\src\examples\webservices\jws_basic\simple>ant deploy
Buildfile: build.xml
deploy:
[wldeploy] weblogic.Deployer -verbose -noexit -source C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar -targets examplesServer -adminurl t3://localhost:7001 -user weblogic -password ******** -deploy
[wldeploy] weblogic.Deployer invoked with options: -verbose -noexit -source C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJwsSimpleEar -targets examplesServer -adminurl t3://localhost:7001 -user weblogic -deploy
[wldeploy] <Dec 23, 2008 2:48:19 PM CST> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, webservicesJwsSimpleEar [archive: C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\build\webservicesJws
SimpleEar], to examplesServer .>
[wldeploy] Task 0 initiated: [Deployer:149026]deploy application webservicesJwsSimpleEar on examplesServer.
[wldeploy] Task 0 completed: [Deployer:149026]deploy application webservicesJwsSimpleEar on examplesServer.
[wldeploy] Target state: deploy completed on Server examplesServer
[wldeploy]
[wldeploy] Target Assignments:
[wldeploy] + webservicesJwsSimpleEar examplesServer
BUILD SUCCESSFUL
Total time: 9 seconds
C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\src\examples\webservices\jws_basic\simple>ant run
Buildfile: build.xml
run:
[java] Got result: Here is the message: 'Hi there!'
BUILD SUCCESSFUL
Total time: 7 seconds
C:\Oracle\wls10.3\wlserver_10.3\samples\server\examples\src\examples\webservices\jws_basic\simple> -
JAX-WS client error when calling web method
My JAX-WS client is getting the following error when calling a web method:
Exception in thread "main" javax.xml.ws.WebServiceException:
No Content-type in the header!
I'm using Eclipse as my development environment. I use the CXF facet to generate a WSDL from Java code. I then use the New -> Web Service Client to generate client side code from the WSDL.
The following fully describes my environment:
Windows XP
JDK 1.6.0_22
Java EE 6
Eclipse Helios
Apache CXF 2.3.0 (runtime)
Tomcat 6.0
I have found several post on the net that describe this problem and a solution for JBoss, but I have been unable to find anything that addresses this error on Tomcat.
I can provide source code if needed. The app is a simple Hello World web service. I'm using it to try and get familiar with developing web services with all the components listed above.
ThanksHi Anders,
The resolution of the crossdomain problem is not to store an cross-domain-policy file at the [SAP] webservice side; but instead it needs to be done at the (every...) webservice client. In case the client is an IIS based webapplication (and thus the ultimate end-users are accessing it via their browser), this is not such an issue. It there is sufficient to put an crossdomain.xml policy file in the IIS main virtual root of your 'client' .net webapplication (c:\inetpub\wwwroot). It also can be required or at least helpful to put a clientaccesspolicy.xml file; both at the main virtual root and in the virtual root of the specific webapplication
In case of SharePoint application, the crossdomain.xml file must be stored in the WSS virtual root of that site; c:\inetpub\wwwroot\wss\virtualdirectories\<your SharePoint webapp>
Best regards, William. -
Hey ,
I have an application which requires to talk to 2 different published webservices
from 2 different systems. Now instead od designing static webservice clients for
each of these systems(which would involve having separate proxy jars etc),
I am planning to design a dynamic webservice locator and invoker....
I know that we can have webservice clients which are dynamic to the extent that
we can create proxy objects at runtime once we know the endpoint WSDL..
eg:
ServiceFactory factory = ServiceFactory.newInstance();
QName serviceName =new QName targetNamespace,"net.xmethods.services.stockquote.StockQuoteService");
QName portName = new QName(targetNamespace,"net.xmethods.services.stockquote.StockQuotePort");
QName operationName = new QName("urn:xmethods-delayed-quotes","getQuote");
URL wsdlLocation = new URL("http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl");
// create service
Service service = factory.createService(wsdlLocation, serviceName);
// create call Call call = service.createCall(portName, operationName);
My question on this...if I have a dynamic approach like the above what are the
pros and cons..I guess it would surely have more overhead compared to a static
client...?
Secondly ,is it even feasible to design a dynamic client in such a way that the
endpoint WSDL could also be an unknown and my generic client would also locate
the end-point dynamically and then invoke dynamic calls as above...
If anybody can share their insights on a dynamic webservice client , I would really
appreciate it...
Thanx,
Krish
KRISH.VENKATARAMAN
Senior Technology Analyst
Bank of America Corp.
Email:[email protected]Hi Krish,
In WSDL, the data types passed between applications are described in schema
and
this is key for interop. I dont know of any standard/natural mapping for
values types,
object reference, etc in a binary protocol (like JRMP, IIOP) to schema. For
eg:
say there is serializable object Foo, which is the argument to a remote
method in RMI.
Object Foo can have data + behavior. It may be possible (not always, i
think) to
describe the data in Foo as schema, but how can one describe the behavior?
So, if WSDL is the only contract between the server and client (key
requirement
for interop), then IMHO RMI can not be described by WSDL.
Also, WSDL was designed for future extensions and does not map well to a
programming API. WSIF trys to expose all the gory WSDL details and its apis
are very clumsy.
These were the two main reason to vote it down at JAX-RPC EC.
I am attaching an example that shows, how to introspect WSDL and invoke
a method using JAX-RPC (with little extension to the std api). Also, it
shows
how to handle complex type without data binding. Will this solve your
problem?
I am very interested to get your feedback on this.
BTW, This example will only work with WLS 8.1.
regards,
-manoj
"Krish Venkataraman" <[email protected]> wrote in message
news:[email protected]...
>
>
Mike...thanx for the inputs...
As per ur suggestion...I have taken this offline and mailed u [email protected]
also....lemme know if thatz cool...
there are my observations..lemme know what am i missing..
1) The main difference I see between JAX-RPC and WSIF, is that with WSIFclient
it is easier to port to services talking
via other ports like RMI,IIOP etc...where as JAX-RPC is understandsonly SOAP(atleast
for now).
2) Lets assume for the time-being that I would be interested only to talkto services
talking SOAP.
Then why do I need WSIF ?
3) I can have a JX-RPC client , I can have a similar generic(reflection)code
for built-in/primitive datatypes and for
complex datatypes I anywayz would be doing the same thing(requiringthe java
representation of the datatype unless I use
something like JROM or something which I do not want to) in JAX-RPC orWSIF.
>
4) As far as syncronous or asyncronous invocation is concerned , myunderstanding
is that my client call is going to remain the
same ..the service provider is going to either use message-oriented orRPC
on his side...
Again assuming that I am interested only with services talking SOAP, thiscould
be my generic client invocation design
Background is that my client is going to run from within a WLS70sp1
Actors:
a) webSevice1ClientSessionBean : This will be a stateless session beanwhich might
have knowledge about webSevice1's end-point ,
complex dataTypes if any.
(There would be other session beans like this which would haveknowledge about
other specific webservice)
b) GenericWebServiceInvoker : This will have knowledge about everythingwithin
the webservice-standards/protocols.
eg:
//set weblogic ServiceFactory
System.setProperty( "javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl" );
//create service factory
ServiceFactory factory = ServiceFactory.newInstance();
//define qnames
String targetNamespace = "http://soapinterop.org/";
QName serviceName = new QName( targetNamespace, "SimpleTest" );
QName portName = new QName( targetNamespace, "SimpleTestSoap" );
QName operationName = new QName( "http://soapinterop.org/",
"echoStruct" );
//create service
Service service = factory.createService( serviceName );
TypeMappingRegistry registry = service.getTypeMappingRegistry();
TypeMapping mapping = registry.getTypeMapping(
SOAPConstants.URI_NS_SOAP_ENCODING );
mapping.register( SOAPElement.class,
new QName( "http://soapinterop.org/xsd", "SOAPStruct" ),
new SOAPElementCodec(),
new SOAPElementCodec() );
//create call
Call call = service.createCall();
//set port and operation name
call.setPortTypeName( portName );
call.setOperationName( operationName );
call.addParameter( "inputStruct",
new QName( "http://soapinterop.org/xsd", "SOAPStruct" ),
ParameterMode.IN);
All parameter values specific to a particular webservice likeQName,targetNameSpace
etc will be sent to this invoker by
webSevice1ClientSessionBean. The GenericWebServiceInvoker will invokethe
service
(using reflection for primitive/builtin types) and alwayz accept anobject
from the service operation and just return
that "object" back the webSevice1ClientSessionBean.ThewebSevice1ClientSessionBean
will know how to interpret the
complexdataType or builtInDatatype whichever is returned.TheGenericWebServiceInvoker
will not have any application
specific knowledge...it will just have knowledge about how todiscover, invoke
any SOAP webservice...
Somewhere in the beginning of GenericWebServiceInvoker I will use JAXRto
discover services from UDDI if needed.
This way I will have a generic webservice client invocation frameworkwhich
can invoke any service which talks SOAP.
Now lemme know how the above picture looks and what is missing...
I have some questions :
1) Incase of complex dataTypes, I will have itz XML representation inthe
publisher's WSDL and the publisher will give
me the java representation of the complex dataType.But how does myclient
JAX-RPC know how to map the XML
to the java representation unless I specify the mapping somewhere?Does
the TypeMapping/TypeMappingRegistry do this ?
Thanx,
Krish
"Michael Wooten" <[email protected]> wrote:
You know, it's really cool to hear guys thinking things through, before
they "jump
on a bandwagon" :-)
Anyway, I suspect that the performance overhead of doing reflection,
and heavy
server-side code intrusion, is what has made a lot of developers balk
at using
WSIF. I would check out the IBM newsgroups, to see what the general
developer
sentiment is on WSIF.
To achieve any sort of decent performance with JAX-RPC based webservices,
you
need to do a fair amount of optimization/tuning on both the client and
server
side. I recommend setting up your own "lab environment" for doing these,
so you
can see exactly what's making things improve/degrade. If you are really
interested
in this topic, we should talk about it "off-line".
In general, the more "dynamic" things are on the client side, the slower
things
will be, the more you really need to question if you really need them
to be dynamic
:-) Does making it "dynamic" really offer something that you can't get
from a
"static" version? If not, who's really benefiting here. I mean, com'n.
All you
really want to do is invoke an operation, right? By the time you get
all the information
it takes to do a dynamic invocation (i.e. port, target namespace, data
type for
input argument, serializer/deserializer for each non-built-in data type,
etc.),
your client looks like you are trying to boot a PDP-11! LOL! For those
of you
who don't know what a PDP-11 is, it's an early computer (from the'60-'70),
that
you actually had to use switches to create the "binary instructions"
to boot it
up!
From a PM's (product manager's) perpective, I wouldn't even let thedevelopers
modify "working" EJBs to expose them as a web service. Alarm bells should
go off
in your head, if you have to modify existing server-side code to expose
a company
asset as a web service.
Response to OT comment: WebLogic Server 7.0 uses its own implementation
of JAX-RPC
1.0. This implementation, I've been told by one of the BEA engineering
that worked
on it, has been certified to be JAX-RPC compliant by Sun. Don't know
about Apache
Axis, in this regard. I use both Apache Axis and the JWSDP with WLS 6.1,
but I
haven't really spent a lot of time looking for differences between our
(BEA's)
implementation, and theirs.
Regards,
Mike Wooten
"Krish Venkataraman" <[email protected]> wrote:
Hey Mike ...
I hear ya..and I see the significance of WSIF...but that IBM started
it a year
back and itz not yet stabilized is what is holding me back...
U mite have a better hold of what WSIF can do...whatever I could grasp
from yesterday
is this...
a)It reads meta data from the wsdl and using a reflection mechanismcalls
the
service operations...
I see examples with primitive datatypes..but what happens when
complex/custom
datatypes come into play...
Would the client code differ between synchronous invocation toasynchronous
invocation...
And aleast in the samples for the WSIF distribution for connectors like
EJB/JMS
etc, the code does not look generic anymore..there are specific calls
to operations
and parameters...
Also Mike , what is the trade-off on performance between having adynamic
client(lets
say based on WSIF)or having a static client...the extent of reflection
a dynamic
client will have to do and create SAAJ objects at runtime will beenormous..
Also I know that there is a relevant API...but can u give an examleshowing
me
how I could discover services from UDDI ..?
Out of this current topic...does BEA use itz own implementation of SOAP
in itz
webservice implementation...and how does it compare with AXIS ?
Thanx,
Krish
"Michael Wooten" <[email protected]> wrote:
Hi Krish,
Well, I guess that's how things are when "needed functionality exceeds
the current
state of a technology" :-)
I (not necessarily BEA) look at it like way:
1. IBM co-authored the "Big 3" XML grammars for the current web
services
stack.
2. IBM always appears to be "there, somewhere" in the new crop ofproposed
additional
XML grammars for "partially agreed upon extension layers", for theweb
services
stack.
3. IBM donated it's original SOAP implementation to the open-sourcecommunity.
4. IBM came up with WSIF over a year ago.
5. IBM's WSTK uses the Apache Axis stuff.
6. A lot of the JAX-RPC/JAXM API is based on the Apache SOAP and Apache
Axis implementations.
7. It looks like IBM may have donated WSIF to Axis.
8. You appear to need something like WSIF :-)
So, there's probably at least a 60/40 chance that some WSIF-like thing
will make
it into the JWSDP, right? If you want "higher odds", you should talk
to the folks
working on the JWSDP, as they are somewhat "in charge" here :-)
Regards,
Mike Wooten
"Krish Venkataraman" <[email protected]> wrote:
Yes...I am surely lookin at something similar...but that framework
not
being standardized
scares me as I have seen many good ideas not seeing the light of the
day...and
I do not want to design something using a framework which might remain
un-standardized..
what are ur thots..
Thanx,
Krish
"Michael Wooten" <[email protected]> wrote:
Hi Krish,
It sounds like you want WSIF :-)
"WSIF allows stubless or completely dynamic invocation of a Web
service,
>>>>>>
based upon examination of the meta-data about the service at runtime.
It
also allows updated implementations of a binding to be plugged intoWSIF
at
runtime, and it allows the calling service to defer choosing a
binding
until
runtime."
Correct?
This is a relatively new "unofficial" addition to the Web ServicesStack,
so it
is not in WLS 7.0 (or Sun's JWSDP) yet. See the following link formore
details:
http://xml.apache.org/axis/wsif
Regards,
Mike Wooten
"Krish Venkataraman" <[email protected]> wrote:
Hey ,
I have an application which requires to talk to 2 different
published
webservices
from 2 different systems. Now instead od designing static webservice
clients for
each of these systems(which would involve having separate proxyjars
etc),
I am planning to design a dynamic webservice locator and invoker....
I know that we can have webservice clients which are dynamic tothe
extent
that
we can create proxy objects at runtime once we know the endpoint
WSDL..
eg:
ServiceFactory factory = ServiceFactory.newInstance();
QName serviceName =new QName
targetNamespace,"net.xmethods.services.stockquote.StockQuoteService");
>>>>>>>
QName portName = newQName(targetNamespace,"net.xmethods.services.stockquote.StockQuotePort");
>>>>>>>
QName operationName = newQName("urn:xmethods-delayed-quotes","getQuote");
>>>>>>>
URL wsdlLocation = newURL("http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl");
>>>>>>>
// create service
Service service = factory.createService(wsdlLocation, serviceName);
// create call Call call = service.createCall(portName,
operationName);
>>>>>>>
>>>>>>>
My question on this...if I have a dynamic approach like the abovewhat
are the
pros and cons..I guess it would surely have more overhead comparedto
a static
client...?
Secondly ,is it even feasible to design a dynamic client in such
a
way
that the
endpoint WSDL could also be an unknown and my generic client wouldalso
locate
the end-point dynamically and then invoke dynamic calls as above...
If anybody can share their insights on a dynamic webservice client
I would really
appreciate it...
Thanx,
Krish
KRISH.VENKATARAMAN
Senior Technology Analyst
Bank of America Corp.
Email:[email protected]
[BrowserClient.java]
[DynamicClient.java] -
Problem invoking from a BPEL process webservice client
I have a BPEL Synchronous process that invokes a webservice deployed on Tomcat. The process executes without any exception when I run it from the BPEL Console. Since I want to execute the BPEL process as a command line operation, I created a BPEL Process Webservice client from scratch using Axis as described in Tutorial7 - InvokingBPELProcesses.pdf. However when I try to execute the client, I get the following error:
AxisFault
faultCode: {http://xml.apache.org/axis/}Server.generalException
faultSubcode:
faultString: Dispatcher send error.
An error occurred while sending a batch message to the dispatch queue. The exception is: Failed to create "java:comp/env/ejb/local/DispatcherLocalBean" bean; exception reported is: "javax.naming.NameNotFoundException: ejb/local/DispatcherLocalBean not found in startup_war
at com.oracle.naming.J2EEContext.getSubContext(J2EEContext.java:93)
at com.oracle.naming.J2EEContext.lookup(J2EEContext.java:76)
at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:177)
at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:119)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.collaxa.cube.engine.util.CubeEngineBeanRegistry.lookupDispatcherLocalBean(CubeEngineBeanRegistry.java:165)
at com.collaxa.cube.engine.util.CubeEngineBeanCache.getDispatcherLocalBean(CubeEngineBeanCache.java:91)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendLocal(DispatchHelper.java:229)
at com.collaxa.cube.engine.dispatch.Dispatcher.receive(Dispatcher.java:430)
at com.collaxa.cube.engine.dispatch.Dispatcher.receive(Dispatcher.java:357)
at com.collaxa.cube.engine.dispatch.Dispatcher.update(Dispatcher.java:253)
at com.collaxa.cube.engine.core.event.DomainObserverRegistry.notify(DomainObserverRegistry.java:124)
at com.collaxa.cube.engine.core.event.DomainObserverRegistry.notify(DomainObserverRegistry.java:66)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.notify(CubeProcessHolder.java:727)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.addProcess(CubeProcessHolder.java:697)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.bind(CubeProcessHolder.java:632)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadAndBind(CubeProcessHolder.java:605)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.loadAndBind(CubeProcessHolder.java:592)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.getProcess(CubeProcessHolder.java:494)
at com.collaxa.cube.engine.deployment.CubeProcessHolder.getProcess(CubeProcessHolder.java:429)
at com.collaxa.cube.engine.CubeEngine.lookupProcess(CubeEngine.java:840)
at com.collaxa.cube.ws.wsdl.WSDLManager.getProcess(WSDLManager.java:437)
at com.collaxa.cube.ws.wsdl.WSDLManager.getPartnerWSDL(WSDLManager.java:300)
at com.collaxa.cube.ws.soap.providers.CXSOAPProvider.processBPELMessage(CXSOAPProvider.java:175)
at com.collaxa.cube.ws.soap.providers.CXSOAPProvider.invoke(CXSOAPProvider.java:111)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
at com.collaxa.cube.fe.CollaxaServlet.service(CollaxaServlet.java:117)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
".
Can someone please tell me what is it I am doing wrong?I was using
Oracle BPEL Server version 2.0
Build: 2004.06.17.14.40
Build time: Thu Jun 17 14:40:58 PDT 2004
However, I downloaded the latest version of the Process Manager and did not face the same problem. -
Our application has servlets talking to webservices. To communicate we place webservices client in WEB-INF directory in war files. The problem we are facing is that when we try to access one of our webservices , It throws following exception
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLo
ader.java:476)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.
java:181)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClas
sLoader.java:62)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.
java:223)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClas
sLoader.java:41)
at weblogic.xml.schema.binding.ClassLoadingUtils.loadNonArrayClass(ClassLoading
Utils.java:68)
at weblogic.xml.schema.binding.ClassLoadingUtils.loadClass(ClassLoadingUtils.ja
va:43)
at weblogic.xml.schema.binding.internal.TypeMappingBase.loadClass(TypeMappingBa
se.java:627)
at weblogic.xml.schema.binding.internal.TypeMappingBase.newInstance(TypeMapping
Base.java:611)
at weblogic.xml.schema.binding.internal.TypeMappingBase.addTypeMapping(TypeMapp
ingBase.java:587)
at weblogic.xml.schema.binding.internal.TypeMappingBase.readXML(TypeMappingBase
.java:771)
at weblogic.xml.schema.binding.internal.TypeMappingBase.readXML(TypeMappingBase
.java:550)
at weblogic.webservice.core.encoding.DefaultRegistry.<init>(DefaultRegistry.jav
a:73)
at weblogic.webservice.core.rpc.ServiceImpl.<init>(ServiceImpl.java:78)
at com.telverse.soap.admin.user.provisioning.process.Provisioning_Impl.<init>(Provisioning_Impl.java:22)
at com.telverse.manager.ProvisioningManager.findFaceplateButtonsByUID(Provision
ingManager.java:109)
at com.telverse.actions.PhoneAction.displayPage(PhoneAction.java:434)
The code which tries to access is as following:
1. Provisioning_Impl prov = new Provisioning_Impl(url+"/provisioning/provisioning?WSDL");
2. ProvisioningPort provPort = prov.getprovisioningPort();
3. provPort.CALLFUNCTION();
The above exception is thrown at Line no1.
Does anybody know the solution of this error?I am not sure what is causing this error. Are you able to run this client outside the web app as a standalone client?
http://manojc.com -
Deployable webservice client - ClassCastException
Hi,
We are trying to implement a WebService Client for the secure Webservice. I have created a deployable proxy client and deployed it on the server, our basis has attached the X509 certificate to the proxy in VA. Test Destination is successful. I have exposed the client as public part in the ws client dc project.I have created a used dc relationship to the webservice client project in my EP Component project. I'm trying to use this client in a AbstractPortal component with following code
SECQANDA seq = (SECQANDA) ctx.lookup("<JNDI location");
I get a ClassCastException on this line
java.lang.ClassCastException: <package>.SECQANDAImpl incompatible with <package>.SECQANDA
Have anyone faced this problem? How do I resolve this error?
Appreciate any help.
Thanks,
Giri.Hi Anand,
Thanks for your response. I have already checked that object for null - it is not. The problem is I dont have this SECQANDAImpl class that implements the SECQANDA interface in my DC. This implementation class gets generated when I deploy the deployable proxy object. Though I should be able to cast to the interface, it is throwing this error. Any other ideas?
Giri. -
Problem deploying webservice client app
I have a JAX-RPC webservice client application which works flawlessly from within JDeveloper 10.1.3 EA1. However, after deploying the application and running it, I get the following error which I have been unable to trace to a missing library:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/xml /rpc/ServiceFactory
at com.brunata.ptd.proxy.TempmonSoapHttpPortClient.<init>(TempmonSoapHtt pPortClient.java:17)
at com.brunata.ptd.proxy.PTDProxy.<init>(PTDProxy.java:24)
at com.brunata.ptd.proxy.PTDProxy.sharedInstance(PTDProxy.java:35)
at com.brunata.ptd.views.PTDAppView.<init>(PTDAppView.java:71)
at com.brunata.ptd.PTDApp.createGUI(PTDApp.java:93)
I made sure to include all libraries I can see JDeveloper is referencing, yet obviously I must be missing something. I include the following:
\j2ee\home\lib
\webservices\lib
\jlib
\lib\xmlparserv2.jar
\xdk\lib\xml.jar
\j2ee\home
\rdbms\jlib\xdb.jar
\diagnostics\lib\ojdl2.jar
\jakarta-taglibs\commons-logging-1.0.3\commons-logging.jar
\jakarta-taglibs\commons-logging-1.0.3\commons-logging-api.jar
I must admit, I am a bit shocked that/if I will have to deploy all these files into a some 40MB jar, not exactly fitting for the Java Web Start appliation I am working on.
Any help greaty appreciated,
Casper BangHi Eric,
Thanks for the single-jar solution tip. Unfortunately I still get the same error (javax.xml.rpc.ServiceFactory) even with the use of that file. If I try to run manually from a commandline and include jaxrpc-api.jar, I get a little further though:
java -classpath J:\jdevstudiobase1013\jdev\mywork\PTD\PTD\classes;J:\jdevj2eebase1013\webservices\lib\jaxrpc-ap
i.jar;J:\jdevstudiobase1013\jdev\mywork\PTD\PTD\deploy\jcommon-1.0.0-rc1.jar com
.brunata.ptd.PTDApp
javax.xml.rpc.ServiceException: Provider oracle.j2ee.ws.client.ServiceFactoryImp
l not found
at javax.xml.rpc.FactoryFinder.newInstance(FactoryFinder.java:44)
at javax.xml.rpc.FactoryFinder.find(FactoryFinder.java:137)
at javax.xml.rpc.ServiceFactory.newInstance(ServiceFactory.java:69)
at com.brunata.ptd.proxy.TempmonSoapHttpPortClient.<init>(TempmonSoapHtt
pPortClient.java:17)
at com.brunata.ptd.proxy.PTDProxy.<init>(PTDProxy.java:24)
Which lib is this? (Any documentation somewhere for where packages are stored?)
Thanks a lot,
Casper
Maybe you are looking for
-
How can I get Final Cut 7 to remember my customized keyboard layout?
Hi everyone, I'm new to this community, my name is Flavio, from Argentina. I'm on a Mac Book Pro Intel Core Duo 2, using Final Cut 7 and I'm using a customized keyboard layout (1 for zoom in, 2 for zoom out), but everytime I launch the application I
-
Airport express error 10057. Also shuts down my entire wifi network when connected
Tried hard reset. In the airport utlility I can see it but can't get into the settings to configure it, It's connected to my router via ethernet. The weird part, is when I have it connected to my router my entire wifi is shut down in my house, no de
-
Oracle 8.1.7 on windows 2000 don't start automatic :(
Why Oracle 8.1.7 don't start automatic on windows 2000 :( Services Oracleora3Agent Oracleora3DataGatherer Oracleora3TNSListener OracleServiceORA3 are started autamatic. (ora3 is SID) if I execute command "startup open" in Server Manager (svrmgrl), th
-
Product type and customer details in project
Hi We are developing a report on the project cost and one of the information in the output should be Customer ..... Product type .....project defn.... Activity start date end date My problem is to identify the product type . The only way i know is
-
Incorrect value getting fetched
Hi in my requirement I want to fetch the wbs element based on the prefixed placed in it .I have coded as follows for one part check gw_auak-objnr CA 'PR'. SELECT pspnr FROM prps INTO TABLE gi_prps WHERE objnr = gw_auak-objnr. Here the value is