Webservice + secured jms (Web Service over the JMS trans).
Apologize since this post is in the webservice forum as well but since it is related to jms as well i put it here as well.
I have a web service that is using JMS (@WLJmsTransport Web Service over the JMS transport)
and everything seems to be ok BUt i do not know how to use this if the JMS is secured .
By Adding security on JMS queue what other things i need to do in order for the webservice to access the queue ?
(where i specify the credentials ?)
@WebService(serviceName = "ASyncService", targetNamespace = "http://axyz.org/notification/v1", endpointInterface = "
axyz.notification.ASyncPort")
@WLJmsTransport(contextPath = "notify", serviceUri = "async_event", portName = "ASyncServicePort", queue = "events", connectionFactory = "cnfct_receiver")
Thank you !
The annotation you gave is for accessing the webservice but in this case it seems the webservice has to access a secured jms
However having your response lead me to @RunAs which solved my problem.
Very hard to find this information.
Thank you very much for your answer !
Nice blog as well !
Edited by: user630775 on Jan 28, 2010 2:02 AM
Similar Messages
-
Accessing a local server web service over the internet
Hello,
This is not the first time i will configure over the internet access to a local server but this particular one is giving me a major headache and i thought to share the config with anyone who can help ppoint where the problem may be. While my NAT transalations seem to be working, when i attempt to browse the public IP, i am supposed to be routed to the local server, but this doesnt happen and i just get a blank page on my web browser. Please see config below:
J#sh run
Building configuration...
Current configuration : 5368 bytes
version 12.4
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname J
boot-start-marker
boot-end-marker
enable secret 5 $1$aNyD$j4lIgFXI84Xp9RR5dzwVk0
aaa new-model
aaa authentication login default local
aaa authorization exec default local
aaa session-id common
clock timezone PCTime 1
crypto pki trustpoint TP-self-signed-1366127775
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-1366127775
revocation-check none
rsakeypair TP-self-signed-1366127775
crypto pki certificate chain TP-self-signed-1366127775
certificate self-signed 01
30820255 308201BE A0030201 02020101 300D0609 2A864886 F70D0101 04050030
31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 31333636 31323737 3735301E 170D3032 30333031 30303533
35315A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649
4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 33363631
32373737 3530819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281
8100CCDC 58E9E078 C978DBC5 CD0D97A0 6B506E2B 4843F38C 578721BF 285EC7BF
F3700E9C FAD9233C A4CC95F6 F29FE5CD 4664F85F 862FB879 1255F21B 725A2773
E1E4BEC0 632A7FFD C383F08E D5FAA4FC 4558BE6B 1B383D7E 19A871F6 3BAB9BAE
B7CB84BB 510A09A3 FA260893 B0BD5AB1 027C97C6 2B2D2B6C AE2683FC AC3015B6
CE8F0203 010001A3 7D307B30 0F060355 1D130101 FF040530 030101FF 30280603
551D1104 21301F82 1D4C494E 45545241 4C455F41 424A2E6C 696E6574 72616C65
2E6C6F63 616C301F 0603551D 23041830 16801434 DD7F3F33 59A951AA 1BBBF414
59302323 10248530 1D060355 1D0E0416 041434DD 7F3F3359 A951AA1B BBF41459
30232310 2485300D 06092A86 4886F70D 01010405 00038181 00A9C9DF 5D2F2042
0AA151FF 72F7D52A 8244C102 4AEDDB6E C7FBA201 A283D693 5F5E9376 0D15E7FE
EBB804A5 C08F6CA1 A416118F D5A06864 EF242404 091F2FFE 3F85B0DE 98E1F747
AC5FBBDE 1E27AE14 64D71B5F A1A48EC7 90882BD2 C3617E7C 8D6426A0 EDA23AB1
32350B15 5E2489F6 018A76A0 3E1595DA 6797723E 563D268A 66
quit
dot11 syslog
no ip source-route
ip cef
no ip dhcp use vrf connected
ip dhcp excluded-address 192.168.1.111 192.168.1.254
ip dhcp pool J
import all
network 192.168.1.0 255.255.255.0
default-router 192.168.1.254
domain-name linetrale.local
dns-server 192.168.1.254
no ip bootp server
ip domain name linetrale.local
crypto ipsec transform-set 3DES-SHA esp-3des esp-sha-hmac
crypto ipsec transform-set AES-SHA esp-aes esp-sha-hmac
crypto ipsec transform-set 3DES-SHA-compression esp-3des esp-sha-hmac comp-lzs
crypto ipsec transform-set AES-SHA-compression esp-aes esp-sha-hmac comp-lzs
crypto ipsec transform-set ESP-3DES-SHA2 esp-3des esp-sha-hmac
archive
log config
hidekeys
ip tcp synwait-time 10
ip ssh time-out 60
ip ssh authentication-retries 2
interface FastEthernet0
switchport access vlan 101
interface FastEthernet1
interface FastEthernet2
interface FastEthernet3
interface FastEthernet4
description WAN_FW_OUTSIDE$ETH-WAN$
ip address x.x.x.x 255.255.255.192
ip verify unicast reverse-path
no ip redirects
no ip unreachables
no ip proxy-arp
ip mtu 1400
ip nat outside
ip virtual-reassembly
ip route-cache flow
ip tcp adjust-mss 1380
duplex auto
speed auto
interface Vlan1
no ip address
interface Vlan101
description LAN_FW_INSIDE
ip address 192.168.1.254 255.255.255.0
no ip redirects
no ip unreachables
no ip proxy-arp
ip accounting output-packets
ip nat inside
ip virtual-reassembly
ip route-cache flow
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 y.y.y.y
ip http server
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
ip dns server
ip nat inside source list 1 interface FastEthernet4 overload
ip nat inside source static tcp 192.168.1.243 80 x.x.x.x 80 extendable
! x.x.x.x is the public IP
access-list 1 remark INSIDE_IF=VLAN101
access-list 1 remark SDM_ACL Category=2
access-list 1 permit 192.168.1.0 0.0.0.255
control-plane
line con 0
no modem enable
transport output telnet
speed 115200
line aux 0
modem InOut
transport output telnet
stopbits 1
speed 115200
flowcontrol hardware
line vty 0 4
privilege level 15
terminal-type moni
transport input telnet ssh
scheduler max-task-time 5000
scheduler allocate 4000 1000
scheduler interval 500
webvpn context Default_context
ssl authenticate verify all
no inservice
end
Any help will be really appreciated.
Regards,
FemiHi Alain,
Browsing the public IP from a remote location to the site, so its over the internet.
Not sure I understand what you refer to as SVI, could this be the VLAN? If it is, then I can say it is up because I can ping the server which is on this VLAN from within the router when I log into it. Also, when I am within the LAN, I am able to browse to the local IP on the server.
I suspect some firewall or access list issue may be preventing something...
Regards,
Femi -
Can't find source file for newsservice.NewsServiceProxy in JMS Web Service
i can't find the source file for newsservice.NewsServiceProxy in JMS Web Service. The
newsservice.NewsServiceProxy is required for client to post news to server and received news from server. But
i can't find where the file located in the newsservices.jar provided in that tutorial.
Someone please help me to located it. thank you :)Hi,
You will have to generate this file. The steps to generate this file has been provided in the Install file present under NewsService/doc/Install.html (once newsservice.jar is extracted) - Running the NewsService client application section - Step 1.
Follow the instructions, and you will be able to download the zip/jar file which contains newsservice.NewsServiceProxy within it.
Regards
Elango. -
Web Service over SSL exception
Hi,
Using NetBeans 6.5 (updated), I have created a web service like this:
package test.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ejb.Stateless;
@WebService()
@Stateless()
public class TestWebService {
@WebMethod(operationName = "testOperation")
public String testOperation(@WebParam(name = "firstParameter") String firstParameter) {
//TODO write your implementation code here:
return "This method has executed " + (firstParameter == null ? "no strings attached." : firstParameter);
}I've deployed and tested it on a local Glassfish server. Some additional information:
- Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b60e-fcs)
- jdk1.6.0_13
It worked fine when accessing it through 'http://localhost:8080/TestWebServiceService/TestWebService?Tester', however, when accessing it through the SSL port (using this link: 'https://localhost:8181/TestWebServiceService/TestWebService?Tester'), it has produced an exception with the following stack trace:
Exceptions details : null
java.lang.NullPointerException at java.io.File.(File.java:222) at com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.initializePort(WebServiceTesterServlet.java:524) at com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.doGet(WebServiceTesterServlet.java:184) at com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:119) at com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:142) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:114) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:87) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.process(SSLReadTask.java:440) at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.doTask(SSLReadTask.java:228) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Question 1: Why isn't the tester working when using the SSL port? A reason or a bug (possibly fixed in later releases)?
Question 2: Will the Web Service itself also not work when invoked through the SSL port? Is it possible to invoke a simple web service over the simple SSL port?
Question 3: When accessing the WSDL description through the SSL port it produces a blank (empty) response - a blank page. Why so?
Thank you very much in advance!
Best regards
MatejHello,
I used this example, when I made my experiments with SSL and Glassfish (GF):
http://java.sun.com/developer/EJTechTips/2006/tt0527.html#1
If you have problems with GF I suggest to post a message here:
http://forums.java.net/jive/forum.jspa?forumID=56
e.g. here is one thread:
http://forums.java.net/jive/thread.jspa?threadID=59993&tstart=0
Miro. -
JMS Web Services in latest OC4J 9.0.3
Just trying out the JMS Web services in OC4J 9.0.3 just released today. Using Ant 1.5 and updated the build.xml file as directed. Using JDK 1.3.02.
Trying the JMS Web Service demo #2 based on JMS on top of Oracle AQ. Everything works fine - queues set up fine, OC4J configured nicely, and the following steps of the build work fine: clean, setup, compile, mdbjar ...
But when I get to the assemble step it crashes with the following error:
assemble:
[echo] assembling Web Services EAR. ..
[java] Please wait ...
[java] java.io.IOException: CreateProcess: javac proxy\JmsDemo2Proxy.java error=2
[java] at java.lang.Win32Process.create(Native Method)
[java] at java.lang.Win32Process.<init>(Win32Process.java:66)
[java] at java.lang.Runtime.execInternal(Native Method)
[java] at java.lang.Runtime.exec(Runtime.java:551)
[java] at java.lang.Runtime.exec(Runtime.java:418)
[java] at java.lang.Runtime.exec(Runtime.java:361)
[java] at java.lang.Runtime.exec(Runtime.java:325)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.doCompile(WsAssmProxyGenerator.java:284)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.processProxy(WsAssmProxyGenerator.java:131)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.clientGenerate(WsAssmProxyGenerator.java:120)
[java] at oracle.j2ee.ws.tools.WsAssembler.assemble(WsAssembler.java:92)
[java] at oracle.j2ee.ws.tools.WsAssembler.main(WsAssembler.java:64)
[java] Exception in thread "main"
BUILD FAILED
file:D:/oc4j903/webservices/demo/basic/jms_service/demo2/build.xml:63: Java returned: 1
What is interesting is the WSDL and proxy appear to have been generated successfully. Even the jmsws2.ear and mdb_service2.jar files appear generated ok. But the web.xml is missing so perhaps this is where it died. Any clues as to what might be wrong ... are changes required in the config.xml file driving the WebServicesAssembly tool?
Thanks for any help.Went a little further ... given the assembly error seemed to occur on the last step creating the proxy.jar file, I simply skipped over it and did the deployment (changed the build.xml to continue assembly upon failure). This seemed reasonable as all the ear and war files where there; the only missing piece appeared to be the proxy.jar.
The deployment of the service was successful and I downloaded the proxy.jar file from the OC4J instance which in turn allowed me to compile the Web service client. Things were looking up here.
However, when I ran the service I got an error indicating the wrong number of arguments to the underlying queues. Given it got through to the database, I assume my configuration is set up correctly but it is a little hard to debug from here. Here is the error I got (note tried on 9.0.1 and 9.0.2 database):
D:\oc4j903\webservices\demo\basic\jms_service\demo2>java -classpath client;proxy/JmsDemo2_proxy.jar;%CLASSPATH% JmsDemo2
Client
Doing the Send Operation ..on Element
<employee>
<name>Bob</name>
<emp_id>1234</emp_id>
<position>assistant manager</position>
</employee>
[SOAPException: faultCode=SOAP-ENV:Server; msg=oracle.jms.AQjmsException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'AQ$_JMS_ENQUEUE_OBJECT_MESSAGE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at JmsDemo2Proxy.makeSOAPCallDocument(JmsDemo2Proxy.java:73)
at JmsDemo2Proxy.send(JmsDemo2Proxy.java:47)
at JmsDemo2Client.main(client/JmsDemo2Client.java:19)
The two oc4j configuration files requiring editing datasources.xml and application.xml are included below. Datasources was straightforward; I wasn't quite clear about the <resource-provider> entry in application.xml as it wasn't clear if this is a top level element or what. See the very end of this post to see where I put it.
Datasources.xml
<?xml version="1.0" standalone='yes'?>
<!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://xmlns.oracle.com/ias/dtds/data-sources.dtd">
<data-sources>
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@localhost:5521:oracle"
inactivity-timeout="30"
/>
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/wsDemoEmulatedOracleCoreDS"
xa-location="jdbc/xa/wsDemoEmulatedOracleXADS"
ejb-location="jdbc/wsDemoEmulatedDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="jemuser"
password="jempasswd"
url="jdbc:oracle:thin:@127.0.0.1:1521:O901"
inactivity-timeout="30"
/>
</data-sources>
application.xml
<?xml version="1.0" standalone='yes'?>
<!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application runtime 1.2//EN" "http://xmlns.oracle.com/ias/dtds/orion-application.dtd">
<!-- The global application config that is the parent of all the other
applications in this server. -->
<orion-application autocreate-tables="true"
default-data-source="jdbc/OracleDS">
<web-module id="defaultWebApp" path="../../home/default-web-app" />
<web-module id="dms0" path="../../home/applications/dms0.war" />
<web-module id="dms" path="../../home/applications/dms.war" />
<connectors path="./oc4j-connectors.xml"/>
<persistence path="../persistence" />
<!-- Path to the libraries that are installed on this server.
These will accesible for the servlets, EJBs etc -->
<library path="../../home/lib" />
<library path="../../../sqlj/lib" />
<library path="../../../rdbms/jlib/xsu12.jar" />
<!-- Path to the taglib directory that is shared
among different applications. -->
<library path="../../home/jsp/lib/taglib" />
<!-- Uncomment the following element to use JAZN-XML as UserManager
<jazn provider="XML" location="./jazn-data.xml" />
-->
<principals path="./principals.xml" />
<log>
<file path="../log/global-application.log" />
</log>
<commit-coordinator>
<commit-class
class="com.evermind.server.OracleTwoPhaseCommitDriver" />
<property name="datasource"
value="jdbc/OracleDS"/>
<!-- Username and password are the optional properties
replace with your commit_co-ordinator_super_user
<property name="username"
value="system" />
<property name="password"
value="manager" />
-->
</commit-coordinator>
<data-sources path="data-sources.xml" />
<namespace-access>
<read-access>
<namespace-resource root="">
<security-role-mapping>
<group name="administrators" />
</security-role-mapping>
</namespace-resource>
</read-access>
<write-access>
<namespace-resource root="">
<security-role-mapping>
<group name="administrators" />
</security-role-mapping>
</namespace-resource>
</write-access>
</namespace-access>
<resource-provider class="oracle.jms.OjmsContext" name="wsdemo">
<description> OJMS/AQ </description>
<property name="datasource" value="jdbc/wsDemoEmulatedDS">
</property>
</resource-provider>
</orion-application>
Any suggestions? Wait for production?
Mike. -
Hi folks,
I'm trying to set up a JMS web service on a WebLogic 7.0 server.
I want this web service to listen for messages on a queue on
another server running WebLogic 6.1 sp2. Here's what I've done:
Created web service using WebLogic Workshop modeled after the
workshop sample SimpleJMS.jws. A file Email.jws contains the
following code snippet:
package datatel.jms.email;
import weblogic.jws.control.JwsContext;
import EmailControl;
import javax.jms.Message;
public class Email
// Public variables...
public String m_Message = "default email response";
public EmailJMS emailJMS = null;
// Protected variables...
protected String jmsURL = "http://predict.datatel-info.com:7250";
// Private variables...
private String name;
* @jws:control
private EmailControl Email_Ctrl;
/** @jws:context */
JwsContext context;
* Initialize the JMS connection to the predict server...
public Email()
System.out.println("\nEntering Email.jws constructor...");
// Initialize JMS on the Predict server...
emailJMS = new EmailJMS(jmsURL);
System.out.println("Exiting Email.jws constructor...");
Notice that the Email() constructor code above references my object EmailJMS(jmsURL).
This object intializes the JMS connection to the other WebLogic 6.1 server. Here's
the JMS initialization code in my web service:
public EmailJMS(String jmsURL) {
System.out.println("\nEntering EmailJMS constructor with URL..."
+ jmsURL);
Environment environ = new Environment();
environ.setProviderUrl(jmsURL);
try {
ctx = environ.getInitialContext();
System.out.println("Got new InitialContext..." + ctx.PROVIDER_URL
+ "\nTime is: " + new Date().toString());
qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
qcon = qconFactory.createQueueConnection();
qsession = (WLQueueSession) qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
/** USER receive queue and listener
queue = (Queue) ctx.lookup("USER_TX_Q");
user_recvr = qsession.createReceiver(queue);
user_recvr.setMessageListener(this);
textMsg = qsession.createTextMessage();
objMsg = qsession.createObjectMessage();
isConnected = true;
qcon.start();
// --- more code follows ...
The JMS connection is successfully made. When another JMS program sends a message
to the USER_TX_Q, the web service receives the message via the onMessage handler
in the EmailJMS class.
The problem arises when I try to invoke my web service from the WebLogic Workshop
browser Test Form. On invocation on my web service, the following exception occurs:
start
= 0.45-->
name = Harmon .CONVPHASE = .START .CONVERSATIONID = 1023816206621
Exception
Submitted at Tue Jun 11 10:23:28 MST 2002
start
= 0.45-->
javax.ejb.CreateException: Exception on Create: java.io.NotSerializableException:
weblogic.jndi.internal.ServerNamingNode_WLStub at weblogic.knex.bean.WebProcessBean.ejbCreate(WebProcessBean.java:876)
at weblogic.knex.bean.WebProcessBean_dp0iqg_Impl.ejbCreate(WebProcessBean_dp0iqg_Impl.java:172)
at java.lang.reflect.Method.invoke(Native Method) at weblogic.ejb20.manager.ExclusiveEntityManager.create(ExclusiveEntityManager.java:731)
at weblogic.ejb20.manager.ExclusiveEntityManager.remoteCreate(ExclusiveEntityManager.java:702)
at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:250) at
weblogic.knex.bean.WebProcessBean_dp0iqg_HomeImpl.create(WebProcessBean_dp0iqg_HomeImpl.java:74)
at weblogic.knex.bean.WebDispatcherBean.invoke(WebDispatcherBean.java:61)
at weblogic.knex.bean.RemoteDispatcherBean.invoke(RemoteDispatcherBean.java:105)
at weblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl.invoke(RemoteDispatcherBean_1a3xc3_EOImpl.java:46)
at weblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl_WLSkel.invoke(Unknown
Source) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:262)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:229)
at weblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl_WLStub.invoke(Unknown
Source) at weblogic.knex.dispatcher.Dispatcher.remoteDispatch(Dispatcher.java:96)
at weblogic.knex.dispatcher.Dispatcher.dispatch(Dispatcher.java:73) at weblogic.knex.dispatcher.HttpServer.exploreExec(HttpServer.java:464)
at weblogic.knex.dispatcher.HttpServer.doGet(HttpServer.java:370) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:945)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:332)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:242)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5352)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:718)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3032)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2466)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
Service Response
When I comment out the instantiation of my EmailJMS(jmsURL) object, the web service
initializes just fine. However, I don't have the JMS connection to my other server.
What is this stack trace telling me? How do I receive unsolicited JMS messages in
a web service?
Thanks,
Bob GontarzHi Bob,
I have tested the same functionality as mentioned by you, and could not see
any errors, while testing using the Test Form. The JMS queue where I was
sending messages is on a 6.1 sp2 server.
Please find attached the two JWS files, which I used to simulate the
condition, one used for dispatching the messages and the other for receiving
the messages.
Please do let me know if your case is any different from the one I have
tested.
I look forward to your response.
Regards,
Anurag
Workshop Support
"Bob Gontarz" <[email protected]> wrote in message
news:[email protected]...
>
Hi folks,
I'm trying to set up a JMS web service on a WebLogic 7.0 server.
I want this web service to listen for messages on a queue on
another server running WebLogic 6.1 sp2. Here's what I've done:
Created web service using WebLogic Workshop modeled after the
workshop sample SimpleJMS.jws. A file Email.jws contains the
following code snippet:
package datatel.jms.email;
import weblogic.jws.control.JwsContext;
import EmailControl;
import javax.jms.Message;
public class Email
// Public variables...
public String m_Message = "default email response";
public EmailJMS emailJMS = null;
// Protected variables...
protected String jmsURL = "http://predict.datatel-info.com:7250";
// Private variables...
private String name;
* @jws:control
private EmailControl Email_Ctrl;
/** @jws:context */
JwsContext context;
* Initialize the JMS connection to the predict server...
public Email()
System.out.println("\nEntering Email.jws constructor...");
// Initialize JMS on the Predict server...
emailJMS = new EmailJMS(jmsURL);
System.out.println("Exiting Email.jws constructor...");
Notice that the Email() constructor code above references my objectEmailJMS(jmsURL).
This object intializes the JMS connection to the other WebLogic 6.1server. Here's
the JMS initialization code in my web service:
public EmailJMS(String jmsURL) {
System.out.println("\nEntering EmailJMS constructor with URL..."
+ jmsURL);
Environment environ = new Environment();
environ.setProviderUrl(jmsURL);
try {
ctx = environ.getInitialContext();
System.out.println("Got new InitialContext..." + ctx.PROVIDER_URL
+ "\nTime is: " + new Date().toString());
qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
qcon = qconFactory.createQueueConnection();
qsession = (WLQueueSession) qcon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
>
/** USER receive queue and listener
queue = (Queue) ctx.lookup("USER_TX_Q");
user_recvr = qsession.createReceiver(queue);
user_recvr.setMessageListener(this);
textMsg = qsession.createTextMessage();
objMsg = qsession.createObjectMessage();
isConnected = true;
qcon.start();
// --- more code follows ...
The JMS connection is successfully made. When another JMS program sends amessage
to the USER_TX_Q, the web service receives the message via the onMessagehandler
in the EmailJMS class.
The problem arises when I try to invoke my web service from the WebLogicWorkshop
browser Test Form. On invocation on my web service, the followingexception occurs:
>
start
= 0.45-->
name = Harmon .CONVPHASE = .START .CONVERSATIONID = 1023816206621
Exception
Submitted at Tue Jun 11 10:23:28 MST 2002
start
= 0.45-->
javax.ejb.CreateException: Exception on Create:java.io.NotSerializableException:
weblogic.jndi.internal.ServerNamingNode_WLStub atweblogic.knex.bean.WebProcessBean.ejbCreate(WebProcessBean.java:876)
atweblogic.knex.bean.WebProcessBean_dp0iqg_Impl.ejbCreate(WebProcessBean_dp0iq
g_Impl.java:172)
at java.lang.reflect.Method.invoke(Native Method) atweblogic.ejb20.manager.ExclusiveEntityManager.create(ExclusiveEntityManager.
java:731)
atweblogic.ejb20.manager.ExclusiveEntityManager.remoteCreate(ExclusiveEntityMa
nager.java:702)
atweblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:250) at
>
weblogic.knex.bean.WebProcessBean_dp0iqg_HomeImpl.create(WebProcessBean_dp0i
qg_HomeImpl.java:74)
atweblogic.knex.bean.WebDispatcherBean.invoke(WebDispatcherBean.java:61)
atweblogic.knex.bean.RemoteDispatcherBean.invoke(RemoteDispatcherBean.java:105
atweblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl.invoke(RemoteDispatche
rBean_1a3xc3_EOImpl.java:46)
atweblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl_WLSkel.invoke(Unknown
Source) atweblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
:262)
atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
:229)
atweblogic.knex.bean.RemoteDispatcherBean_1a3xc3_EOImpl_WLStub.invoke(Unknown
Source) atweblogic.knex.dispatcher.Dispatcher.remoteDispatch(Dispatcher.java:96)
at weblogic.knex.dispatcher.Dispatcher.dispatch(Dispatcher.java:73)at weblogic.knex.dispatcher.HttpServer.exploreExec(HttpServer.java:464)
at weblogic.knex.dispatcher.HttpServer.doGet(HttpServer.java:370)at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) atweblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
tStubImpl.java:945)
atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:332)
atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:242)
atweblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
ebAppServletContext.java:5352)
atweblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:718)
atweblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:3032)
atweblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2466)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
Service Response
When I comment out the instantiation of my EmailJMS(jmsURL) object, theweb service
initializes just fine. However, I don't have the JMS connection to myother server.
What is this stack trace telling me? How do I receive unsolicited JMSmessages in
a web service?
Thanks,
Bob Gontarz
[SendMessages.jws]
[HelloWorld.jws] -
Hi @ll
I try to define a specific jms response queue for a web service client that communicates SOAP/jms, running on a WLS 9.2. The web service itself runs also on a WLS 9.2 where also the request and response queues are located. By default the client receives the responses from a temporary response queue. Is there a way to define a specific response queue e.g. setting the JMSReplyTo property in the request on the client side?
/cheers&greetz
DaniWLS do not have a light SOAP client with callbacks yet. It is
not a planed feature for 7.0, but we will considering this for
post 7.0.
regards,
-manoj
"markhu" <[email protected]> wrote in message
news:[email protected]..
Hi, guys:
I have a system : client written in Java/Swing, HTTPS authentication,
and then subscribes to a WLS 61. SP2 based JMS Topic and also has the
ability to send message to a Queue, since I can not bring down the size of
the client side WLS JMS dependency lib, I am thinking about using SOAP /
web service as the communication tier between my client and server, so the
question is: since the client need get the price updates in a real time
mode, I need build a server side based PUSH for all the new price updates
which come into the JMS Topic, and broadcast as SOAP messages to client,is
this mean that I have to build the Call - Back for the Java Swing Client,so
it can automatically get the new price updates as it's getting from JMS
Topic now ? Any Idea on how to build server side PUSH based SOAP message
center as web service ?? Thanks a lot.
regards,
mark
FYI:
I need the same PUSH service for my .NET based client as well. -
How can i send a XML document object over the JMS wire
HI,
does anybody has anyidea about sending the XML Document over the JMS and receiving
it n the other side..
regards,
Akhil
Is this the full stack trace?
Akhil Nagpal wrote:
> HI ,
> Sorry the excepiotn is of deserialization...this is the stack trace...mistake...
>
> weblogic.jms.common.JMSException: Error deserializing object
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
> ----------- Linked Exception -----------
> weblogic.jms.common.JMSException: Error deserializing object
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>
>
> Akhil
>
>
> "Akhil Nagpal" <[email protected]> wrote:
>
>>HI,
>> Actually i have created my own class which implements serializable.
>>I set the
>>object of this class in the ObjectMessage and send it across. Sometime
>>i have
>>to send some vector,sometimes string and sometime a XML document. So
>>i can set
>>these type of objects in my custom serializable object and send it. For
>>sending
>>XML , either i can send it as a string or as u said as Document object.
>>But i
>>want to do send it as a Document object. So i have created a an object
>>of "org.jdom.Document"
>>which implement serializable and setting this object into my custom object
>>and
>>sending this custom object in the objectmessage. But then weblogic throws
>>some
>>exceptions which has nothing to do with serialization.I am printing the
>>exception
>>below. (without the object of org.jdom.Document this custom object reaches
>>safely
>>and happily:))...this exception is something related to transactions.....can
>>you
>>or anybody tell me what could be the reason..
>>I am not able to think why this kind of exception comes only when i try
>>to send
>>the jdom's Document object and never in other cases..
>>
>>java.sql.SQLException: XA error: XAER_RMERR : A resource manager error
>>has occured
>>in the transaction branch start() failed o
>>n resource 'oraclePool': XAER_RMERR : A resource manager error has occured
>>in
>>the transaction branch
>>oracle.jdbc.xa.OracleXAException
>> at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:483)
>> at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:190)
>> at weblogic.jdbc.jta.VendorXAResource.start(VendorXAResource.java:41)
>> at weblogic.jdbc.jta.DataSource.start(DataSource.java:569)
>> at weblogic.transaction.internal.ServerResourceInfo.start(ServerResourceInfo.java:1165)
>> at weblogic.transaction.internal.ServerResourceInfo.xaStart(ServerResourceInfo.java:1108)
>> at weblogic.transaction.internal.ServerResourceInfo.enlist(ServerResourceInfo.java:287)
>> at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:391)
>> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1146)
>> at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1101)
>> at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:145)
>> at weblogic.jdbc.jta.Connection.createStatement(Connection.java:204)
>> at weblogic.jdbc.rmi.internal.ConnectionImpl.createStatement(ConnectionImpl.java:130)
>> at weblogic.jdbc.rmi.SerialConnection.createStatement(SerialConnection.java:71)
>> at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:134)
>> at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
>> at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
>> at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
>> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
>> at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
>>
>> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1151)
>>
>>
>>any help will be appriciated..
>>Akhil
>>
>>
>>
>>Raj <[email protected]> wrote:
>>
>>>wrap it up as an object message(I think DocumentImpl is Serializable).
>>>This way you
>>>wont be vendor specific and can retrieve it at the other end.
>>>
>>>Akhil Nagpal wrote:
>>>
>>>
>>>>HI Raj,
>>>> thanks for the response..actually we dont want our application
>>>
>>to
>>
>>>be weblogic
>>>
>>>>specific...
>>>> there should be some other way arround....
>>>>
>>>>REgards
>>>>Akhil
>>>>
>>>>"Raj" <[email protected]> wrote:
>>>>
>>>>>There is a weblogic specific XMLMessage similar to ObjectMessage,
>>>>
>>>BytesMEssage
>>>
>>>>>etc.. Try using that to wrap ur XML document and send it across.
>>>>>
>>>>>-Raj
>>>>>
>>>>>"Akhil Nagpal" <[email protected]> wrote:
>>>>>
>>>>>>HI,
>>>>>>does anybody has anyidea about sending the XML Document over the
>>>>>
>>>JMS
>>>
>>>>>>and receiving
>>>>>>it n the other side..
>>>>>>regards,
>>>>>>Akhil
>>>>>
>
-
Error calling external web service over HTTPS
Hi everyone
I'm trying to call an external web service over HTTPS, and continually get the following error:
com.sap.engine.services.webservices.espbase.wsdl.exceptions.WSDLException: Peer sent alert: Alert Fatal: handshake failure
I haven't tried doing this before, so not quite sure where to start. I have a client certificate that must be used to access the remote web service, and I think the problem is associating the client cert with the web service call.
Has anyone else tried this before? Any suggestions of where to look?
I've had a brief look at Key Storage in NWA, but it's not something I'm familiar with - so not sure if it's even the right place to be looking.
Some help on this would be great!
Thanks
StuartThanks Aleksandar
Here's the output from the trace. Unfortunately the SAP forums don't allow attachments, so it may be difficult to read. Please let me know if you see anything that may help.
Thanks
Stuart
Time Severity User Thread Location Message
09:18:23:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:23:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@fa1b67
09:18:24:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:24:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@4c8af
09:18:24:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:24:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@b6981b
09:18:25:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:25:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:25:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:25:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:26:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:26:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider [com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider] 'nonProxyHosts' are configured '10.|127.|192.168.*'.
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider [com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider] 'nonProxyHosts' default value is '10.|127.|192.168.*'.
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider Loadin mapping file from location :[c:/mapping.txt]
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider Additional file for CTS configuration can not be found [c:\mapping.txt (The system cannot find the file specified)].
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider >>>>>>>>> ERROR: Could not find mapping for service QName=vipSoapInterfaceService, class=class com.verisign._2006._08.vipservice.VipSoapInterfaceService
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider: Creating client instance with WSDL URL [https://pilot-vipservices-auth.verisign.com:443/prov/soap/val/soap] (vipSoapInterfaceService) <com.verisign._2006._08.vipservice.VipSoapInterfaceService>
09:18:26:203 Debug Administrator HTTP Worker [0] ~es.espbase.client.jaxws.cts.CTSProvider com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider: Using SAP JAX-WS Implemetation to create service delegate.
09:18:26:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:26:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@5586b0
09:18:26:687 Path Administrator HTTP Worker [0] ~s.espbase.wsdl.exceptions.WSDLException Exception : Peer sent alert: Alert Fatal: handshake failure
java.lang.Exception
at com.sap.exception.BaseExceptionInfo.traceAutomatically(BaseExceptionInfo.java:1230)
at com.sap.exception.BaseExceptionInfo.<init>(BaseExceptionInfo.java:147)
at com.sap.exception.BaseException.<init>(BaseException.java:89)
at com.sap.engine.services.webservices.espbase.wsdl.exceptions.WSDLException.<init>(WSDLException.java:34)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.loadDOMDocument(WSDLLoader.java:140)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:91)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:80)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.loadWSDLDefinitions(SAPServiceDelegate.java:201)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.initWSDL(SAPServiceDelegate.java:159)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.<init>(SAPServiceDelegate.java:113)
at com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider.createDelegate(CTSProvider.java:170)
at com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider.createServiceDelegate(CTSProvider.java:151)
at javax.xml.ws.Service.<init>(Service.java:57)
at com.verisign._2006._08.vipservice.VipSoapInterfaceService.<init>(VipSoapInterfaceService.java:41)
at JEE_jsp_result_6740550_1225116575421_1225116585468._jspService(JEE_jsp_result_6740550_1225116575421_1225116585468.java:64)
at com.sap.engine.services.servlets_jsp.lib.jspruntime.JspBase.service(JspBase.java:102)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:433)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:289)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:309)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:152)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247)
Caused by: org.w3c.www.protocol.http.HttpException: Peer sent alert: Alert Fatal: handshake failure
iaik.security.ssl.SSLException: Peer sent alert: Alert Fatal: handshake failure
at iaik.security.ssl.r.f(Unknown Source)
at iaik.security.ssl.x.b(Unknown Source)
at iaik.security.ssl.x.a(Unknown Source)
at iaik.security.ssl.r.d(Unknown Source)
at iaik.security.ssl.SSLTransport.startHandshake(Unknown Source)
at iaik.security.ssl.SSLTransport.getOutputStream(Unknown Source)
at iaik.security.ssl.SSLSocket.getOutputStream(Unknown Source)
at org.w3c.www.protocol.http.g.markUsed(Unknown Source)
at org.w3c.www.protocol.http.HttpBasicServer.getConnection(Unknown Source)
at org.w3c.www.protocol.http.HttpBasicServer.runRequest(Unknown Source)
at org.w3c.www.protocol.http.HttpManager.runRequest(Unknown Source)
at org.w3c.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at org.w3c.www.protocol.http.HttpURLConnection.a(Unknown Source)
at org.w3c.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(URL.java:1007)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:201)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:263)
at com.sap.engine.lib.xml.parser.Parser.parse_DTDValidation(Parser.java:282)
at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:293)
at com.sap.engine.lib.xml.parser.DOMParser.parse(DOMParser.java:101)
at com.sap.engine.lib.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:127)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:146)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.loadDOMDocument(WSDLLoader.java:132)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:91)
at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:80)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.loadWSDLDefinitions(SAPServiceDelegate.java:201)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.initWSDL(SAPServiceDelegate.java:159)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.SAPServiceDelegate.<init>(SAPServiceDelegate.java:113)
at com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider.createDelegate(CTSProvider.java:170)
at com.sap.engine.services.webservices.espbase.client.jaxws.cts.CTSProvider.createServiceDelegate(CTSProvider.java:151)
at javax.xml.ws.Service.<init>(Service.java:57)
at com.verisign._2006._08.vipservice.VipSoapInterfaceService.<init>(VipSoapInterfaceService.java:41)
at JEE_jsp_result_6740550_1225116575421_1225116585468._jspService(JEE_jsp_result_6740550_1225116575421_1225116585468.java:64)
at com.sap.engine.services.servlets_jsp.lib.jspruntime.JspBase.service(JspBase.java:102)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:433)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:289)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:309)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:152)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247)
09:18:27:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:27:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@20ba3c
09:18:27:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:27:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:28:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:28:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@26e3bf
09:18:28:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:28:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:29:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:29:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@f827f6
09:18:29:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:29:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@a8646a
09:18:30:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:30:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:30:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:30:687 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=com.sap.engine.services.dbpool.cci.CommonConnectionHandle@c449f1
09:18:31:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out About to get connection from DS
09:18:31:187 Info caf_gp_svcuser Thread[Timer-8,5,ApplicationThreadGroup] System.out DS connection=[email protected]
09:18:31:593 Info Administrator HTTP Worker [3] System.out SessionImpl::getContext():[ B E G I N ].timerId=15
09:18:31:593 Info Administrator HTTP Worker [3] System.out SessionImpl::getContext():[ E N D ].timerId=[id:#15, elapsed: 0 ms.] -
BAD_CERTIFICATE error calling a web service over SSL in ALSB 2.6
We have a business service on an ALSB 2.6 server (running on WL 9.2.1) that connects to a web service over SSL. When we try to run it, we get the following exception:
<Sep 17, 2009 7:49:17 AM PDT> <Error> <ALSB Kernel> <BEA-380001> <Exception on TransportManagerImpl.sendMessageToService, com.bea.
wli.sb.transports.TransportException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
com.bea.wli.sb.transports.TransportException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
at com.bea.wli.sb.transports.TransportException.newInstance(TransportException.java:146)
at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOu
tboundMessageContext.java:310)
at com.bea.wli.sb.transports.http.HttpsTransportProvider.sendMessageAsync(HttpsTransportProvider.java:435)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Truncated. see log file for complete stacktrace
javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(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.ClientStateReceivedServerHello.handle(Unknown Source)
Truncated. see log file for complete stacktrace
This exception only occurs when hitting the web service through the bus. I have written a standalone Java application that posts to the web service and it works fine. I ran the application on the server where the ALSB is running using the same jdk (1.5.0_06 - the version that ships with 9.2.1) and the same cacerts file so I know it's not a problem with the certificate not being trusted. I have tried updating the cacerts file to the latest one distributed with JRE 1.6 and it still doesn't work.
After 8 hours of troubleshooting, I'm out of ideas. Does anyone have any suggestiosn?
Thanks.
Matt
Edited by: user6946981 on Sep 17, 2009 7:58 AMAre you sure that your standalone application is using the same keystore (eg. cacert)? Default WebLogic configuration uses different keystore (demo).
I saw BAD_CERTIFICATE error only once and the cause was in keytool that somehow corrupted certificate during import. Deleting and importing certificate again helped me, but I doubt you have the same problem as your standalone application works.
Another idea ... Is hostname varification used? I know that the error message would look different if this was the cause, but try to add this parameter to your weblogic startup script: -Dweblogic.security.SSL.ignoreHostnameVerification=true
Last but not least, there is difference between your standalone application and ALSB runtime as WebLogic uses Certicom SSL provider. If you don't find the reason, contact Oracle support. Maybe they can help you to tweak Certicom provider in some way. -
Web service client behind a proxy server connecting to web service over SSL
Hi Friends,
A web service is exposed by an external system over SSL. We are behind a proxy server and are trying to get connected to web service over SSL. <p>
We are getting the following error on the test browser of workshop<p><p>
External Service Failure: FATAL Alert:HANDSHAKE_FAILURE - The handshake handler was unable to negotiate an acceptable set of security parameters.<p><p>
the whole trace is <p>
<p>JDIProxy attached
<Sep 24, 2005 9:27:25 AM EDT> <Warning> <WLW> <000000> <Id=creditCheckCtrl:salesExpertServiceControl; Method=creditcheckcontr
ol.SalesExpertServiceControl.doCreditVerification(); Failure=com.bea.control.ServiceControlException: SERVICE FAULT:
Code:javax.net.ssl.SSLHandshakeException
String:FATAL Alert:HANDSHAKE_FAILURE - The handshake handler was unable to negotiate an acceptable set of security parameters
Detail:
END SERVICE FAULT>
<Sep 24, 2005 9:27:26 AM EDT> <Warning> <WLW> <000000> <Id=creditCheckCtrl; Method=creditcheckcontrol.CreditCheck.testCreditC
heck(); Failure=com.bea.control.ServiceControlException: SERVICE FAULT:
Code:javax.net.ssl.SSLHandshakeException
String:FATAL Alert:HANDSHAKE_FAILURE - The handshake handler was unable to negotiate an acceptable set of security parameters
Detail:
END SERVICE FAULT [ServiceException]>
<Sep 24, 2005 9:27:26 AM EDT> <Warning> <WLW> <000000> <Id=top-level; Method=processes.CreditCheck_wf.$__clientRequest(); Fai
lure=com.bea.wli.bpm.runtime.UnhandledProcessException: Unhandled process exception [ServiceException]>
<Sep 24, 2005 9:27:26 AM EDT> <Error> <WLW> <000000> <Failure=com.bea.wli.bpm.runtime.UnhandledProcessException: Unhandled pr
ocess exception [ServiceException]><p>
I am not able to make out what could be possibly wrong. Please let me know if you guys have any ideas about how to resolve it.
Thanks
Sridhardid you resolve this problem. I am looking at the same issue. If you did I would really appreciate your response.
Thanks. -
Web Service over SSL failing in BEA Workshop
I have deployed a web service on weblogic 9.2
I have enabled one-way ssl on it. got a trial ssl certificate from verisign. installed them on the keystore/truststore on the server as well as the jre (cacerts and jssecacerts truststores) being used by the client. the client is on different machine than the server.
i have developed the service through 'bea weblogic workshop 9.2' now when i try to test the service through the 'web services explorer' within bea weblogic workshop i receive the following error:
IWAB0135E An unexpected error has occurred.
IOException
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
on server:
<Jul 13, 2009 6:45:44 PM EDT> <Warning> <Security> <BEA-090485> <CERTIFICATE_UNKNOWN alert was received from yunus.l1id.local - 10.10.2.72. The peer has an unspecified issue with the certificate. SSL debug tracing should be enabled on the peer to determine what the issue is.>
if i try to access the web service (over ssl) through the browser (ie/firefox), it works fine. i have generated a proxy class to access this web service through the same bea workshop and that works fine too. certificates are identified and all. i also created a small .net (c#) application that calls this secure web service over ssl from another machine and it works fine too!
of course non-secure url for the web service is working fine in every case.
what can be the reason for this failing only in 'web services explorer' in bea workshop?
cross posted at: http://www.coderanch.com/t/453879/Web-Services/java/Web-Service-over-SSL-failing
thanks.Hello,
I used this example, when I made my experiments with SSL and Glassfish (GF):
http://java.sun.com/developer/EJTechTips/2006/tt0527.html#1
If you have problems with GF I suggest to post a message here:
http://forums.java.net/jive/forum.jspa?forumID=56
e.g. here is one thread:
http://forums.java.net/jive/thread.jspa?threadID=59993&tstart=0
Miro. -
Calling a WebSphere Web Service over a Destination
Hi there,
we have installed SAP CE 7.1 SP3 on machine1 and created a destination to another SAP server, called machine2, which we use as web space and save our WSDLs, e.g. machine2:50000/wsdl/MyService.wsdl.
MyService is a small dummy service created with WebSphere Service and works fine. It does not need any security details! This service runs on machine3 and its endpoint is machine3:9060/MyServiceWeb/services/MyServiceSOAP.
So I tried to invoke this service in the WSNavigator on machine1 by entering directly the url. This works.
But if I select the service over the logical destination and then try to invoke it, I get the following error message:
RemoteException: Invalid Response code (404). Server <http://machine2:50000/MyServiceWeb/services/MyServiceSOAP> returned message <Not Found>.
But the correct result is returned, too.
The definition of the destination is as following:
Type: WSDL
Name: MyService
URL: http://machine2:50000/wsdl/MyService.wsdl
System: Java
System Name:
Host Name:
Also a HTTP Authentication is entered with User ID/Password (Basic).
Another interesting point is that I found this error in the log file:
com.sap.engine.services.wssec.srt.protocols.AbstractSecurityProtocol # Authentication method is sapsp:HTTPBasic, but no user or password is specified.
But I can swear that this input is entered. The provided user has administrative rights for machine2.
I hope you can help me!
Thanks,
FelixHi Anthony,
If you are using a proper ssl certificate signed by one of the ssl certificate vendors, whose CAs are in the java root keystore, you donot need to do anything special.
However, if you are using a test ssl certificate generated within your organization, you would have to add it to the keystore of the JRE which runs the BPEL engine, otherwise you would usually get an error similar to "java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". More information on adding the custom certificate to a JRE root keystore can be found in this article.
Hope this helps,
Shanmu.
http://www.prshanmu.com/articles -
Using Web Services on the Crystal Report Server XI to return reports
<p>Hi,</p><p>I'm trying to setup for the first time a Crystal Reports Server XI R2 and put a couple of reports onto the server. This is so I can access the reports on the crystal reports server using using the crystal web services and finally display the reports in an ASP.NET web application.</p><p>So far I have installed the server, created a couple of reports, put them on the server, and tested to see that I can access the reports using the Central Management Console. This all works fine and the reports are returned.</p><p> Ok, now for the bit that's not working.</p><p> I've got a C# ASP.NET web application, and I've followed a couple of <a href="http://support.businessobjects.com/documentation/product_guides/cr_net/vs_2005/html/crtsktutorialsotherdynamicpulldownwebservicehelpermethod.htm" target="_blank" title="Adding a Helper Method to Access Crystal Reports Web Services">tutorials</a> to give me an idea of what I should be doing to use the Web Services that are provided: </p><ul><li>ServerFileReportManager.asmx</li><li>ServerFileReportService.asmx </li></ul><p>However, it appears that when I list the child objects on the crystal server:</p><blockquote><font size="2" color="#008080"><font size="1"><em><font size="2"><p><font size="1">serverFileReport = <font color="#0000ff">new</font> <font color="#008080">ServerFileReport</font>();<br /></font><font size="1">serverFileReport.ReportPath = <font color="#800000">""</font>;<br /></font><font size="1"><br />reportManagerRequest = <font color="#0000ff">new</font> <font color="#008080">ReportManagerRequest</font>();<br /></font><font size="1">reportManagerRequest.ExtraData = serverFileReport.GetExtraData();<br /></font><font size="1">reportManagerRequest.ParentUri = serverFileReport.ToUri();<br /></font><font size="2" color="#008080"><font size="1"><em><br />ReportManagerResponse</em></font></font><font size="1"><em> reportManagerResponse = <font color="#0000ff">new</font> <font color="#008080">ReportManagerResponse</font>();<br />reportManagerResponse = serverFileReportManagerProxy.ListChildObjects(reportManagerRequest);</em></font></p></font></em></font></font></blockquote><p><font size="1"><font size="1">I always get a</font> <font size="2"><font size="1"><em>reportManagerResponse.ReportUris</em></font></font></font><font size="1"> with a count of 0. Now the thing is I know that I have a couple of reports on the Crystal Server, but for some reason they're not been picked up. I must be missing something.</font></p><p><font size="1"><font size="1">Does anyone have any ideas??? Please</font>!</font></p><p>Many thanks in advance,<br />Chris</p><p>Current Set-up:</p><ul><li>Crystal Reports Server XI R2 (11.5)</li><li>Virtual Directory of the web services: crystalreportviewers115 </li><ul><li>(Physical Path - C:\Program Files\Business Objects\common\3.5\crystalreportviewers115)</li></ul><li>Development Environment: Visual Studio 2005</li></ul>
<p>I looks like your mixing technologies here. You are using <strong>Crystal Report Server</strong> and the <strong>Crystal Report Web Services</strong> that come with Visual Studio.</p><p>I know that this might seem like they are the same product, and the naming does seem confusing but I'll try and make it easy for you to understand.</p><p><strong>Crystal Reports Server</strong> - This is a managed reporting solution which allows you to distribute your reports via the web. It has features like scheduling and built in security.</p><p>It appears that you have a handle on what Crytal Report Server is from what you have been able to accomplish those far. You have created your report and published it to Crystal Report Server and viewed it via the Central Management Console. Crystal Reports Server has two methods for accessing the reports programatically.</p><p>1. The Enterprise SDK</p><p>2. The Web Services SDK</p><p><a href="/node/353">Check out this white paper that compares these two SDKs </a></p><p><a href="/node/256">This paper describes the Web Services SDK.</a></p><p>In the above paper there is a getting started section which points you to the Developer Library which shows you how to install the web services on your Crytal Reports Server machine.</p><p>Crystal Reports Server does not have the Business Object web services installed by default so I would suggest following the directions in the <a href="http://devlibrary.businessobjects.com/BusinessObjectsXIR2/en/devsuite.htm">Developer Library.</a></p><p>The directions wont talk about Crystal Reports Server but these are the directions to get the Web Services installed. </p><p>There is another web services technology which you are writing code for which is called <strong>Crystal Report Web Services. </strong>This technology comes with Visual Studio 2003. It provides un-managed reports via webservices. Un-managed means these reports are not published to Crystal Reports Server.</p><p>So basically your problem is that your code is for <strong>Crystal Report Web Services </strong>but you are trying to view reports published to <strong>Crystal Reports Server.</strong> To take advantage of scheduling and security and web service access I would suggest using Crystal Reports Server and install the Business Objects Platform webservices to access the reports. </p><p>I hope that's clear.<br /></p><p>Rob Horne<br /><a href="/blog/10">Rob's blog - http://diamond.businessobjects.com/blog/10</a></p>
-
I am new to web services so please pardon me if what I am asking is really dumb.....
I have created a simple PL/SQL web service using JDeveloper that I have published to an installation of 9iAS. My client is calling this URL directly passing the parameters in the URL and getting the SOAP message back. Everything works great.
Now I need to secure this somehow. This is an internal application, so I am not terribly concerned with security, but we do need something that will prevent somebody who stumbles across this URL to start using it.
I have read a lot of documentation on securing web services, but it all seems to be around creating clients, but I don't want a client, I just want to be able to call the URL directly from external systems programmatically.
One option is obviously to pass username / pw in as parameters and then validate this in PL/SQL, but this is obviously not very secure.
Another things I was thinking was to use the owa_util.get_cgi_env('REMOTE_ADDR') inside by PL?SQL function to get the IP Address of the client calling and then validate this to make sure this client is allowed to access the web service. This function returns ORA-06502. Does anybody know anything about how to get the IP address of the client calling? I know there are ways to limit access to certain IP addresses on the web server level, but this server is used for other things so I don’t want to do that.
Is there anything else I can do to secure a web service like this?
Any help is appreciated.More reading and code sample (see end of this post) of what is coming and what is possible today:
http://www.oracle.com/oramag/oracle/02-jul/index.html?o42special_web.html
http://otn.oracle.com/oramag/webcolumns/2003/techarticles/smith_wss.html
This article from Vipin Samar gives the state of WS-Security pretty accurately:
http://otn.oracle.com/tech/webservices/standards/Samar_Security.htm
Accompanying paper:
http://otn.oracle.com/tech/webservices/pdf/33206.pdf
And, this code sample/tutorial illustrates SSL with Web services:
http://otn.oracle.com/sample_code/tutorials/wspki/toc.htm
Mike.
Maybe you are looking for
-
Hi, How can I edit an animated gif in Photoshop Elements 6 for Mac? When I open the file there is just the first frame in one layer - no other layers available. Thanks!
-
Hp is saying suspected water damage
I have a hp dv6, i was working on my PowerPoint at my desk and the computer shuts off with no warning. A power chord will not power it back on. I called hp, they sent a box out, I have a factory warranty on it. I called and talk to someone who says t
-
After selecting language (0=English),, CD boot tries to install Solaris 10 I then get this error "No disk found" error eventhough the CD is in there.. please help
-
Hi ABAP gurus In FB60 screen there is a transaction which should display the code and description like R Invoice. But the issue is it is displaying only R and not the description. How to bring description display. Points are assured. Regards SAP only
-
Reg: Multiple Traffic lights(2 fields) in ALV
Hi Gurus, I have created one field with traffic light in ALV display. But i need one more traffic light field in the same ALV. Can any one please give me small example with multiple traffic licght fields in one ALV. Thanks Mahaboob