Trying to make jms client inside web service
Hi i am trying to make a jms call inside a webservice
but whenever i try to execute the web service it gives error with following url
http://localhost:8280/axis/services/WSTune?method=setTune&r=TUNE
i have deploy this service on jboss and code is working properly in normal java application
and i have also placed the jar files inside axis/web-inf/lib folder
soapenv:Envelope>
−
<soapenv:Body>
−
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>java.lang.reflect.InvocationTargetException</faultstring>
−
<detail>
<ns1:hostname>linux</ns1:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>my code is following
package services;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.MapMessage;
import javax.jms.TextMessage;
import javax.jms.QueueSession;
import javax.jms.QueueRequestor;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import com.chetu.MyStream;
public class WSTune
InitialContext ctx;
Queue queue;
String tunedata;
String queueName;
QueueConnectionFactory connFactory;
String rid; // Request id
public String setTune(String r)throws Exception
rid=r;
MyStream m=new MyStream();
m.setData(new byte[]{'a','b'});
System.out.println("Started WSTune");
queueName = "queue/mytQueue";
try {
System.out.println("==> 1");
Properties props = new Properties();
System.out.println("==> 2");
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
System.out.println("==> 3");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
System.out.println("==> 4");
props.setProperty("java.naming.provider.url", "127.0.0.1:1099");
System.out.println("==> 5");
ctx = new InitialContext(props);
System.out.println("==> 6");
} catch (NamingException e) {
System.out.println("Could not create JNDI API " +
"context: " + e.toString());
System.exit(1);
try {
System.out.println("==> 7");
Object tmp = ctx.lookup("ConnectionFactory");
System.out.println("==> 8");
System.out.println("lookup completed");
connFactory = (QueueConnectionFactory)tmp;
System.out.println("==> 9");
queue = (Queue) ctx.lookup(queueName);
System.out.println("==> 10");
} catch (Exception e) {
System.out.println("JNDI API lookup failed: " +
e.toString());
e.printStackTrace();
System.exit(1);
System.out.println("==> 11");
QueueConnection queueConn = connFactory.createQueueConnection();
/* queueConn.start();
QueueSession queueSession = queueConn.createQueueSession(false,Session.DUPS_OK_ACKNOWLEDGE);
QueueRequestor requestor = new QueueRequestor(queueSession, queue);
MapMessage message = queueSession.createMapMessage();
message.setString("ID",rid);
message.setString("COMMAND","TUNE");
TextMessage result = (TextMessage) requestor.request(message);
message.clearBody();
tunedata=result.getText();
queueConn.close();*/
System.out.println("==> 12");
// return tunedata;
return rid+" from the WS";
}and in tomcat log it is printing up to 7 numbers.
Thanks in advance however its very urgent
Hi Simon,
Other thing you can do is compare the HTTP requests (including header) from both Delphi and XMLSPY. I suspect if the SOAP message is same in both case the difference might be in the header. But one thing is certain, WAS can not respond differently for same request, don't you think so ?
Cheers,
Sanjeev
Similar Messages
-
How to make a WORKING J2ME Web Services client?
Hi everyone,
I'm trying to make my first J2ME client for web services (well, I need it for my degree thesis, so I'm a little bit DESPERATE) but I've got a lot of problem that I don't understand, even with samples downloaded from web tutorials and from xmethods.net.
The problem is with the generation of Stub classes:
if I try to make the Java Wireless TollKit 2.2 to generate them and then I run the midlet in the JWTK emulator there's no problem, but when I try to do the same thing with the Nokia Developer's Suite 3.0 I've got a lot of problems, first of all the java code generated for the stub is very different from the first one, it seem like a C# or J# code (and obviously Eclipse says that it's full of errors), so when I try to make the jar and jad files it doesn't work (because is not a right java code), so I made the stub classes using the JWTK2.2 Stub Generator and then I used the Nokia Dev's Suite 3.0 to build and package the midlet, but it says that it's not able to find the "class or resource javax/xml/rpc/Stub" even if the resource is present and used exactly as all the other packages, and it creates a jar file with just some of the classes but not all. At the end I tryed to run in the nokia emulators the midlet created by the JWTK 2.2, but it doesn't start, so I put the midlet on two diffent Nokia phones (6600 and 6630, because I need to make my client work on the 6630) but it seems to make the virtual machine to crash. I erased all the code lines invoking the stub classes and added them again one by one, until the midlet stoped again to work, and I understand that the problem seems to be with the invocation of the costructor of the stub class, but it doesen't make no sense, because the same code works properly on not-Nokia phones and emulators. I used many different wsdl files to create the stub classes for different web services, but there's always the same problems.
Help me please.You will find some working code at :
http://ksoap.objectweb.org/software/downloads/index.html
It's code that use kSOAP and kXML implementations ....
If you will also find some useful information here :
http://developers.sun.com/techtopics/mobility/apis/articles/wsa/
http://www-106.ibm.com/developerworks/wireless/library/wi-jsr/
http://www-106.ibm.com/developerworks/wireless/library/wi-xmlparse/
Regards. -
Receive asynchronous message from JMS topic over web service
Hi,
I have a JMS topic and I want to expose it as a web service so that clients can
make durable subcription to the topic and receive messages asynchronously. What
is the best way of doing this ? Is there a portable (to other containers) way
of do this ? If not, is there a web logic specific way of doing this ?
Thanks,
SivaSo you expect clients to be receiving SOAP messages over HTTP? In this
case, the clients are really servers that are capable of servicing SOAP
requests, correct? And how about the senders: are they also using
SOAP/HTTP to send messages that are delivered to the receivers?
It should be possible to write this yourself using JMS not as the
transport, but as a mechanism for distributing the message to a set of
clients. You'll need to implement a Web Service for publishing to a
topic, an operation for registering an end point to recieve messages,
and an MDB (or other form of JMS subscriber) executing on the server to
relay the message to the end point.
Siva wrote:
Hi,
I have a JMS topic and I want to expose it as a web service so that clients can
make durable subcription to the topic and receive messages asynchronously. What
is the best way of doing this ? Is there a portable (to other containers) way
of do this ? If not, is there a web logic specific way of doing this ?
Thanks,
Siva -
Make https invocation from web service code?
I have a JAX-WS web service running in WebLogic 10.3.5. From within that web service code, I need to make a SECOND web service invocation to another web-service application to obtain some necessary information, and that second web service invocation must use HTTPS protocol. Unfortunately, I'm getting a "java.lang.IllegalStateException: Cipher not initialized" exception, which makes me think the SSL handshake is failing.
Can this be done? If so, how?yes, you should be able to do it
http://docs.oracle.com/cd/E23943_01/web.1111/e13713/transport.htm#CIHGAEJD
1.) you can use the system properties to load truststore as specified from above link inside you client web service code
0r
2.) you can load using -D options as specified in below link
http://docs.oracle.com/cd/E23943_01/web.1111/e13713/transport.htm#i238552
or
3.) you can use keystore configuration to configure trust store
http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/taskhelp/security/ConfigureKeystoresAndSSL.html#WLACH03024
Regards,
Sunil Polineni -
Returning XML to client from web service
Hi,
I am new to developing web services using JAX_RPC. I am trying to return a xml document to the client from the web service.
My Server implementation is as follows:
Interface:
public interface OntoIF extends Remote
public DataHandler ontoCompare (String targetUrl,String sourceUrl ) throws RemoteException;
Implementaion:
public class OntoImpl implements OntoIF
public DataHandler ontoCompare (String targetUrl,String sourceUrl ) throws RemoteException
DataHandler dataHandler = new DataHandler( new StreamSource( new File ("status.xml")), "text/xml");
return dataHandler;
Client Implementation:
Stub stb = (Stub) (new OntoService_Impl().getOntoIFPort());
stb._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY,
"http://localhost:8080/onto-service/onto");
OntoIF onto = (OntoIF) stb;
DataHandler retDHandler = onto.ontoCompare(targetOntoUrl, sourceOntoUrl);
When I compile and run my client, it throws the following error -
java.rmi.ServerException: JAXRPCSERVLET28: Missing port information
at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
va:497)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:294
at sstub.OntoIF_Stub.echoDataHandler(OntoIF_Stub.java:122)
at sstub.OntoClient.main(OntoClient.java:63)
Can you please let me know what I am doing wrong? I have no problems in sending a DataHandler but receiving the DataHandler from the web service throws errors.
Thanks!Hi I'm having the same problem. I try to set up a Web Service using JAX_RPC. My WS should invoke a native Method implemented in C++. Did you got a solution for this issue? My Error Message is as follows:
java.rmi.ServerException: JAXRPCSERVLET28: Missing port information
at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:497)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:294)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:80)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:489)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:122)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:86)
at $Proxy0.getHello(Unknown Source)
at com.neuhaus.test.ws.client.NativeInvokeClient.main(NativeInvokeClient.java:44)
Exception in thread "main"
greetings, JAN -
Sending JMS messages as web services
I am trying to read a JMS topic, retrieve an XMLBean from the queue, and send it
via web services developed in Workshop. Everything seems to deploy fine, but
when I post a message to the topic, it just disapears. No logging, no movement
to the specified error queue, and println doesn't print. How do I do this?Hi Neil,
Have you gone through the tutorial "how to" [1] on this subject? There
is a basic JMS/webservice example [2], outside of WLW, that may be
useful in validating your JMS/server configuration. Also, be sure to
check the server log file for warning/error messages.
Hope this is of some value,
Bruce
[1]
http://edocs.bea.com/workshop/docs81/doc/en/workshop/guide/howdoi/howExchangeMessageswithaJMSQueueorTopicfromaWebService.html
[2]
http://webservice.bea.com/message.zip
Neil Hornbeck wrote:
>
I am trying to read a JMS topic, retrieve an XMLBean from the queue, and send it
via web services developed in Workshop. Everything seems to deploy fine, but
when I post a message to the topic, it just disapears. No logging, no movement
to the specified error queue, and println doesn't print. How do I do this? -
Simple Client for web service ...Perl way
II need to get information from a web service (with a defined WSDL)...I have been able to do that with Perl ((using SOAP:Lite) which is pretty staight forward....
I was trying to do the same with Java ..I tried to find tutorials ...but was overwhelmed with the amount of information ..in there .(They talk about writing the server installing axis etc ..but fail interms of a simple explanation to create a simple client
I was wondering if you could help me to get hold of a tutorial/resource which helps in simply creating a connection and getting information from the remote application...hi
writing webservices using tomcat and axis is pretty easy ..... you have to create a java class to describe your service .... and save it in the axis subdirectory of tomcat .... and call the service from a client on a remote machine using the IP address and port details ... -
Exception thrown while trying to connect to Primavera using Web service.
Dear all,
We are trying to connect primavera from a .net application using Web service.It is working fine with P6 V7, but while trying to connect to V.8 there is an exception thrown by SoapHeaderException.
The Contents in the Exception is like this
System.Web.Services.Protocols.SoapHeaderException: This class does not support SAAJ 1.1
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Primavera.AuthenticationService.AuthenticationService.Login(Login Login1) in E:\Manesh\Code\PROTOTYPES\PrimaveraAuthentrication\SampleDemo\Web References\AuthenticationService\Reference.cs:line 100
at Primavera.Form1.TestConnection(String& sErr) in E:\Manesh\Code\PROTOTYPES\PrimaveraAuthentrication\SampleDemo\Form1.cs:line 66
Here i am specifying the C# code which makes the above exception
public int TestConnection(ref string sErr)
try
AuthenticationService.AuthenticationService authService = new AuthenticationService.AuthenticationService();
try
authService.Url = Url;
authService.CookieContainer = new CookieContainer();
AuthenticationService.Login lg = new AuthenticationService.Login();
lg.UserName = LoginName;
lg.Password = Password;
lg.DatabaseInstanceId = 1;
lg.DatabaseInstanceIdSpecified = true;
AuthenticationService.LoginResponse lp = authService.Login(lg); //This line which makes the exception
cookieContainer = authService.CookieContainer;
finally
if (authService != null)
authService.Dispose();
return 1;
catch (Exception eX)
return -1;
We are looking forward for a solution
Thanks in Advance.
Regards
Jinoshhttp://otn.oracle.com/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#_59_
The thin drivers are classes12.zip/classes111.zip. classes12.zip being the most recent release. You can download it from
http://otn.oracle.com/software/tech/java/sqlj_jdbc/htdocs/winsoft.html
(the general download site is http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html )
Jamie -
How to get info about web service caller inside Web Service
Hi..
I want to know that can we get info about Web Service Caller inside called web service..
Info Like IP Address, User Id, User Name
Regards,
Ajay SharmaHi,
I tested following code using JDevloper 11g
@Resource
WebServiceContext wsc;
@WebMethod
public String webMethod() {
MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest)msgCtxt.get(MessageContext.SERVLET_REQUEST);
System.out.println("Client IP = " + req.getRemoteAddr());
return req.getRemoteAddr();
}It is giving me IP address but when i tested this web service from another computer there also it is giving my machine address instead of the machine IP from where the web service is called.
What is wrong in my code ?
Regards,
Ajay
Edited by: Ajay Sharma on Dec 31, 2012 1:06 PM -
Can not make a jax-rcp web service returning string[][]
I want to return a string[][] from my web service, but when trying to do it with Jdeveloper it says:
The return type java.lang.String[][] of method
<my method> cannot be serialized into XML, and no
custom serializer has been defined for it.
How can i define a serializer for the array???I got the Same problem and only today i tried web services
Is it right to do this way.
If so Please See the thng i've done.
Otherwise Please Suggest alternatives
I created Two Projects
1. Web Service
2. Web Client.
A Bean (It is in Web service Project)
public class Results
private int sum;
private int difference;
private int multi;
private float division;
/** Creates a new instance of Results */
public Results ()
public Results (int sum,int difference,int multi,float division)
this.difference=difference;this.division=division;
this.multi=multi;
this.sum=sum;
A Service Method
public class myService
// It works Fine in the client
@WebMethod
public int addTwoNumbers (@WebParam(name = "var1") int var1, @WebParam(name = "var2") int var2)
// TODO implement operation
return var1+var2;
// How do Get this Stuff Work at the Client
@WebMethod
public Results getResults (@WebParam(name = "var1") int var1, @WebParam(name = "var2") int var2)
Results aResult=new Results((var1+var2),(var1-var2),(var1*var2),(var1/var2));
return aResult;
Now, How do I get this working in the Client.
In the Ide Get get Error (Using Netbeans5.5 -Tomcat). -
Different versions of JDeveloper for client and web service
Hi,
Here is a tricky question: I've created a web service using JDeveloper 10.1.3.3 and I want to generate a client from the corresponding wsdl. The thing is however that the client will reside on Oracle Application Server 10.1.3.0 so I have to generate it from JDev 10.1.3.0.
I first tested to generate a client in JDev 10.1.3.3 and it worked fine sending messages from my local machine. But then I tried to generate a web service proxy in JDev 10.1.3.0 and in the last step when pressing the finish-button I get the following error:
"Proxy generation failed for the following reason:"
oracle.j2ee.ws.common.tools.api.WsdlValidationException: Error reading import of file:/C:/Program Files/JDeveloper/JDev10130/jdevstudio1013/jdev/mywork/Test/XXOGL_F59_HBOPreCheckProxy/public_html/XXOGL_B08_HBOPreCheck/XXOGL_B08_HBOPreCheck.wsdl: Invalid URL or file: properties.wsdl: Illegal character in path at index 16: file:/C:/Program Files/JDeveloper/JDev10130/jdevstudio1013/jdev/mywork/Test/XXOGL_F59_HBOPreCheckProxy/public_html/XXOGL_B08_HBOPreCheck/XXOGL_B08_HBOPreCheck.wsdl
at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:172)
at oracle.j2ee.ws.common.processor.config.ModelInfo.buildModel(ModelInfo.java:167)
at oracle.j2ee.ws.common.processor.Processor.runModeler(Processor.java:72)
at oracle.j2ee.ws.tools.wsa.AssemblerTool.run(AssemblerTool.java:95)
at oracle.j2ee.ws.tools.wsa.WsdlToJavaTool.createProxy(WsdlToJavaTool.java:354)
at oracle.j2ee.ws.tools.wsa.Util.createProxy(Util.java:838)
at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.doGeneration(ProxyGenerator.java:549)
at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.generateImpl(ProxyGenerator.java:365)
at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.mav$generateImpl(ProxyGenerator.java)
at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator$1ThrowingRunnable.run(ProxyGenerator.java:206)
at oracle.jdeveloper.webservices.model.GeneratorUI$GeneratorAction.run(GeneratorUI.java:446)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:551)
at java.lang.Thread.run(Thread.java:595)
The properties.wsdl and XXOGL_B08_HBOPreCheck.wsdl are in the correct directory. The XXOGL_B08_HBOPreCheck.wsdl contains the following row about the properties-file:
<import namespace="http://xmlns.oracle.com/XXOGL_B08_HBOPreCheck/correlationset" location="properties.wsdl"/>
Why is it complaining??
Thanks for your help!Try another folder than file:/c:/program files/....
Illegal character in path index 16 ->
The whitespace is the problem...
You need a path without spaces... -
Transaction inside web services, what does Oracle AS provides?
Hi
Thank you for reading my post.
we have tens of web services that we want to deploy them inside one instance of Oracle AS, now we need to have some transaction support in several levels :
- When we insert data into database in a single web services.
- When we have JMS interaction in a single web service.
- When we have JMS + Database interaction in a single web service.
- When a taransaction start from one web service and it must propagate inside second web service and second web service will decide whether it should be commited or not.
What does Oracle AS provides in this area?
If there is no support for this kind of scenario in Oracle AS, then what we should do?
ThanksHi,
1) if you are using Oracle Database 10g JDBC, it can pool connections for you, transparently -- if you are using Oracle AS or Oracle9iAS, you can just use JPublisher to generate the wrapper and deploy it.
2) SSB is too heavy for just placing a JDBC call.
3) a Servlet is lighter-weight that a SSB however, the Web services framework itself uses a Servlet to marchall / unmarshall SOAP messages -- unless your middle-tier requires a J2EE programming model (such as Servle or EJB) to pool JDBC connections
4)For calling-in database operations as web services, our implementation requires the Oracle AS (or Oracle9iAS) OC4J middle-tier (see #1) however, you can invoke external Web services from within the database.
See our Database Web services page for more details and code samples
http://otn.oracle.com/tech/webservices/database.html
Kuassi -
Error "Deserialisation failed" when trying to use BAPI via a web service
I created a web service in BW with the help from the wizard WS_WZD_START. The web service contains
(among others) the RFC BAPI_ODSO_READ_DATA_UC.
The web service runs OK & can be used from the SAP Web Services Navigator.
Now when i try to use the web service from Delphi i get
an error: "Deserialisation failed" (SimpleTransformationFault) "ODSOBJECT erwartet".
The ODSOBJECT parameter is there to be sure.
I saw the same error before in this forum but found no real solution there. I am using BW 6.40 & SP 12.
XML sent:
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<sapsess:Session xmlns:sapsess="http://www.sap.com/webas/630/soap/features/session/">
<enableSession>true</enableSession></sapsess:Session></SOAP-ENV:Header>
<SOAP-ENV:Body><ns1:BAPI_ODSO_READ_DATA_UC xmlns:ns1='urn:sap-com:document:sap:rfc:functions'>
<DATALAYOUT></DATALAYOUT><INFOOBJECTLIST><item>
<INFOOBJECT>/CIVGM/NUM</INFOOBJECT></item></INFOOBJECTLIST>
<MAXROWS>2</MAXROWS><ODSOBJECT>/CIVGM/BPLO001</ODSOBJECT><ORDERBY></ORDERBY>
<RESULTDATA></RESULTDATA><SELECTIONCRITERIA></SELECTIONCRITERIA><UNICODE>N</UNICODE>
</ns1:BAPI_ODSO_READ_DATA_UC></SOAP-ENV:Body></SOAP-ENV:Envelope>
Answer:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body><soap-env:Fault><faultcode>soap-env:Client</faultcode>
<faultstring xml:lang="en">Deserialisation failed</faultstring>
<detail><n0:SimpleTransformationFault xmlns:n0="http://www.sap.com/transformation-templates">
<MainName>/1BCDWB/WSS0050825153239449000</MainName>
<ProgName>/1BCDWB/WSS0050825153239449000</ProgName>
<Line>73 </Line>
<Valid>X</Valid>
<MatchFault>
<DescriptionText>Element 'ODSOBJECT' erwartet</DescriptionText>
<TokenType>S</TokenType>
<TokenName>CODEPAGE</TokenName>
<TokenNameSpace>urn:sap-com:document:sap:rfc:functions</TokenNameSpace>
<TokenValue></TokenValue>
</MatchFault><Caller>
<Class>CL_SRG_RFC_PROXY_CONTEXT</Class>
<Method>IF_SXML_PART~DECODE</Method>
<Positions>1 </Positions>
</Caller></n0:SimpleTransformationFault>
</detail></soap-env:Fault>
</soap-env:Body></soap-env:Envelope>
The same error occurs when I take the exact XML that was sent from Web Services Navigator (the XML that worked) and send that from Delphi.
What could be wrong?Hi Simon,
Other thing you can do is compare the HTTP requests (including header) from both Delphi and XMLSPY. I suspect if the SOAP message is same in both case the difference might be in the header. But one thing is certain, WAS can not respond differently for same request, don't you think so ?
Cheers,
Sanjeev -
JMS Proxy to Web Service Problem
Hi All,
I have a JMS proxy that routes messages to a web service. I have set the delivery failure parameters on the JMS queue. When a message is put onto the queue and there is a problem within the message flow proper, the message is retried the appropriate number of times and put onto the Error Destination queue as necessary. However, if there is a problem calling the web service, message delivery is NOT retried, the message is NOT put onto the Error Destination queue, and the message is lost. The web service itself isn't throwing a SOAP Fault, but the business service can't reach the web service (firewall issue). My Route Error Handler in the message flow is hit and it performs a Reply With Failure.
Can anyone please explain to me if this is by design and, if so, why? Also, how does a person work around this? I need the message to be retried. I understand that a web service cannot participate in an XA transaction, but it seems to me any failure within the message flow should cause a retry on the JMS queue.
Thanks.
Edited by mvcg at 06/11/2008 1:57 PMYou should remove the Route Node since it should only be used in HttpProxy.
Instead use just the request pipeline for your routing.
if (condition1)
Service Callout (or publish) to Service1
else if (condition2)
Service Callout (or publish) to Service2
else
Rasie error?
You shouldn't need to reply with failure. Any errors in the service callout or publish should go to exception handling if you use QoS exactly-once. -
"Cipher not initialized" when trying to invoke CRM On Demand web service
Hi,
I'm try to invoke CRM On Demand web service for which there is a pre-req to get a session ID by making an https request. I've the below java embedded code which does that. It works fine if I run the below code in my desktop as a java program, but when I deploy it on SOA 11g I get "Caused by: java.lang.IllegalStateException: Cipher not initialized" error (find below the stack trace). Please let me know what's going wrong here?
String sessionString = "FAIL";
String wsLocation =
"https://secure-********.crmondemand.com/Services/Integration";
String headerName;
try {
// create an HTTPS connection to the OnDemand webservices
java.net.URL wsURL =
new java.net.URL(wsLocation + "?command=login");
java.net.HttpURLConnection wsConnection =
(java.net.HttpURLConnection)wsURL.openConnection();
// disable caching
wsConnection.setUseCaches(false);
// set some http headers to indicate the username and password we are using to logon
wsConnection.setRequestProperty("UserName",
wsConnection.setRequestProperty("Password", "***********");
wsConnection.setRequestMethod("GET");
// see if we got a successful response
if (wsConnection.getResponseCode() ==
java.net.HttpURLConnection.HTTP_OK) {
// get the session id from the cookie setting
for (int i = 0; ; i++) {
headerName = wsConnection.getHeaderFieldKey(i);
if (headerName != null &&
headerName.equals("Set-Cookie")) {
// found the Set-Cookie header (code assumes only one cookie is being set)
sessionString = wsConnection.getHeaderField(i);
if (sessionString != null ||
sessionString.startsWith("JSESSIONID")) {
break;
String formattedID =
sessionString.substring(sessionString.indexOf("=") + 1,
sessionString.indexOf(";"));
setVariableData("SessionID", formattedID);
//System.out.println("Session ID: " + sessionString);
} catch (Exception e) {
e.printStackTrace();
setVariableData("SessionID", e.getMessage());
System.out.println("Logon Exception generated :: " + e);
throw new RuntimeException(e);
Caused by: java.lang.IllegalStateException: Cipher not initialized
at javax.crypto.Cipher.c(DashoA13*..)
at javax.crypto.Cipher.update(DashoA13*..)
at com.certicom.tls.provider.Cipher.update(Unknown Source)
at com.certicom.tls.record.MessageEncryptor.compressEncryptSend(Unknown Source)
at com.certicom.tls.record.MessageEncryptor.compressEncryptSend(Unknown Source)
at com.certicom.tls.record.MessageFragmentor.write(Unknown Source)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source)
at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:123)
at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:158)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:363)
at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:952)
at orabpel.productquerybpelprocess.ExecLetBxExe0.execute(ExecLetBxExe0.java:93)
Thanks!Same question...did you ever got this resolved...for me, even the simple java program, when run on JDev 11g is ALSO not working. I am getting this.
Using JDev 10g on the same machine (or for that matter SOA 10g) works perfectly.
Have posted this thread too - Getting SSLHandshakeException when trying to login to OCOD using Jdev 11g
Thanks,
Amit
Maybe you are looking for
-
Still can't change shape's color in runtime
Hi , I've read many of the earlier posts in the subject , and everyone saying , that if I want to change a shape's color in runtime I should just after creating the shape , add the line: shape.setCapability(shapw.ENABLE_APPEARANCE_MODIFY); I've tried
-
MiniSAP 4.6 installation error COMCREATESERVERPORT
Hi All, I am trying to install MiniSAP 4.6 in my laptop. I did install MS loopback adapter, checked for no entry of port 3600 and hosts file with local ip address. When I started the setup.bat, it asked for the port number and on clicking Next, I get
-
Jdbc adapter in sap netweaver pi 7.3
Hi All, My system details: SAP NET WEAVER PI 7.3 and database MYSQL 10.00.2531 Can you pls let me know 1. what are all the drivers I need to download ? 2. from where I can download JDBC drivers ? 3. how to deploy JDBC drivers into our PI 7.3 server.
-
Newbe Q: Where do I find B2B Document Editor documentation?
Hello. A Newbe Question. I find myself in need of modifying a HL7 ADT A01 Spec file in such a way that PV1 Visit Number field is greater then the 20 characters the spec allows (which is strange since the components of that field are all larger then t
-
Re: Standard cost estimate CK64
Dear CO Experts When i execute costing run using transaction ck64 (inputs defined in CK40n) i get the following error message. But i am able to successfully update using transaction CK11n and CK24 transactions. Can anyone let me know what is the reas