Importing classes to CORBA-client fails
Hi!
I'm trying to compile a simple CORBA-client but importing the classes fails.
Test.java:1: package org.omg does not exist
I'm running j2se 1.4 and j2ee 1.3.1
My classpath:
C:\Program Files\jdkee\lib\j2ee.jar;C:\j2sdk\jre\lib\rt.jar;C:\j2sdk\lib\dt.jar;C:\j2sdk\lib\tools.jar;C:\j2sdk\jre\lib\ext\dnsns.jar;C:\j2sdk\jre\lib\ext\ldapsec.jar;C:\j2sdk\jre\lib\ext\localedata.jar;C:\j2sdk\jre\lib\ext\sunjce_provider.jar;C:\j2sdk\lib\resin-ejb.jar;C:\j2sdk\lib\resin.jar;C:\java\JC\Inl2\Inl2Bean.jar;C:\Program Files\jdkee\lib\jhall.jar;C:\Program Files\jdkee\lib\ejb10deployment.jar;C:\Program Files\jdkee\lib\j2ee-ri-svc.jar;C:\Program Files\jdkee\lib\j2eetools.jar
Any help would be appreciated.
Henrik
The problem is your class path.
Most likely either you do not have it set at all or you are pointing at a child directory rather than the root directory.
The package resides in the same file as the Servant,Same file? You can't have two packages in the same file. And if you meant 'directory' then you might as well move it, because trying to keep two packages in the same directory, although possible, is more trouble than it is worth.
Similar Messages
-
Does the weblogic server supports c++ corba client /IIOP?
hi:)
I have a c++ corba client interacts with WLS using IIOP. I am just wondering
what ORB i need to use 2) trsaction propagation 3 ) security
thankx,
suresh reddyI suggest trying the RMI IIOP newsgroup. I do not quite understand your
question.
Michael Girdley
Product Manager, WebLogic Server & Express
BEA Systems Inc
"Sunesh Kumra" <[email protected]> wrote in message
news:[email protected]...
Hi Michael,
Is it allowed to use your own multi-threaded library from within WLS ?Note that
the WLS Beans do not contain the threads, the threading part is in somelibrary
which the WLS Beans communicates with. Can the Helper classes which arepackaged
with the WLS Beans span threads of their own ?
Most importantly, is it allowed to use some vendor's ORB (for exampleOrbixweb)
within WLS because the thread created by the ORB might interfere with WLS
threads ??
Michael Girdley wrote:
2.1) CORBA client initiated transactions will not be supported,
everything else will workYes, that is my understanding.
2.2) None of the EJB security services will be available in EJB
method
called by a CORBA client (i.e. getCallerPrincipal() andisCallerInRole()
will fail)Yes, that is my understanding. I would suggest that you place this onthe
RMI IIOP newsgroup. The developers who write the code for this feature
actually hang out over there.
Thanks,
Michael
Michael Girdley
Product Manager, WebLogic Server & Express
BEA Systems Inc
"<=one way=>" <[email protected]> wrote in message
news:[email protected]...
1) We must support both C++ and Java clients that will be requesting
services from our EJBs running in WLS. The clients are internal appsrunning
in different companies and we would prefer to avoid requiring our
clients
to
use an ORB by a specific vendor. At the same time we do not want to
deal
with potential problems related to the implementation differences by
different ORB vendors. What would be the best way to handle thissituation?
2) WLS documentation has the following paragraph:
"WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping
support.
Currently, however, a standard for passing user identity -- requiredto
implement EJB-to-CORBA mapping -- does not exist and the requirementfor
transaction propagation from the client is in question. While RMI overIIOP
does allow CORBA clients to access EJBeans, the following services
will
not
be available:
EJB transaction services
EJB security services"
Does this mean that:
2.1) CORBA client initiated transactions will not be supported,
everything else will work
2.2) None of the EJB security services will be available in EJB
method
called by a CORBA client (i.e. getCallerPrincipal() andisCallerInRole()
will fail)
Thanks in advance
"Michael Girdley" <[email protected]> wrote in message
news:[email protected]...
Yes, check out the documentation on the RMI over IIOP on our web
site.
>>>>
Thanks,
Michael
Michael Girdley
Product Manager, WebLogic Server & Express
BEA Systems Inc
"indham inc" <[email protected]> wrote in message
news:[email protected]...
hi:)
I have a c++ corba client interacts with WLS using IIOP. I am justwondering
what ORB i need to use 2) trsaction propagation 3 ) security
thankx,
suresh reddy -
Hi,
I have a question on using EJB / or RMI servers with CORBA clients using
RMI-IIOP transport, which in theory should work, but in practice has few
glitches.
Basically, I have implemented a very simple server, StockTreader, which
looks up for a symbol and returns a 'Stock' object. In the first example, I
simplified the 'Stock' object to be a mere java.lang.String, so that lookup
would simply return the 'synbol'.
Then I have implemented the above, as an RMI-IIOP server (case 1) and a
CORBA server (case 2) with respective clients, and the pair of
client-servers work fine as long as they are CORBA-to-CORBA and RMI-to-RMI.
But the problem arises when I tried using the RMI server (via IIOP) with the
CORBA client, when the client tries to narrow the object ref obtained from
the naming service into the CORBA idl defined type (StockTrader) it ends up
with a class cast exception.
This is what I did to achieve the above results:
[1] Define an RMI interface StockTrader.java (extending java.rmi.Remote)
with the method,
public String lookup( String symbol) throws RMIException;
[2] Implement the StorckTrader interface (on a PortableRemoteObject derived
class, to make it IIOP compliant), and then the server to register the stock
trader with COS Naming service as follows:
String homeName =....
StockTraderImpl trader =new StockTraderImpl();
System.out.println("binding obj <" homeName ">...");
java.util.Hashtable ht =new java.util.Hashtable();
ht.put("java.naming.factory.initial", args[2]);
ht.put("java.naming.provider.url", args[3]);
Context ctx =new InitialContext(ht);
ctx.rebind(homeName, trader);
[3] Generate the RMI-IIOP skeletons for the Implementation class,
rmic -iiop stock.StockTraderImpl
[4] generate the IDL for the RMI interface,
rmic -idl stock.StockTraderImpl
[5] Generate IDL stubs for the CORBA client,
idlj -v -fclient -emitAll StockTraderImpl.idl
[6] Write the client to use the IDL-defined stock trader,
String serverName =args[0];
String symList =args[1];
StockClient client =new StockClient();
System.out.println("init orb...");
ORB orb =ORB.init(args, null);
System.out.println("resolve init name service...");
org.omg.CORBA.Object objRef
=orb.resolve_initial_references("NameService");
NamingContext naming =NamingContextHelper.narrow(objRef);
... define a naming component etc...
org.omg.CORBA.Object obj =naming.resolve(...);
System.out.println("narrow objRef: " obj.getClass() ": " +obj);
StockTrader trader =StockTraderHelper.narrow(obj);
[7] Compile all the classes using Java 1.2.2
[8] start tnameserv (naming service), then the server to register the RMI
server obj
[9] Run the CORBA client, passing it the COSNaming service ref name (with
which the server obj is registered)
The CORBA client successfully finds the server obj ref in the naming
service, the operation StockTraderHelper.narrow() fails in the segment
below, with a class cast exception:
org.omg.CORBA.Object obj =naming.resolve(...);
StockTrader trader =StockTraderHelper.narrow(obj);
The <obj> returned by naming service turns out to be of the type;
class com.sun.rmi.iiop.CDRInputStream$1
This is of the same type when stock trader object is registered in a CORBA
server (as opposed to an RMI server), but works correctly with no casting
excpetions..
Any ideas / hints very welcome.
thanks in advance,
-hariOn the contrary... all that is being said is that we needed to provide clearer examples/documentation in the 5.1.0 release. There will be no difference between the product as found in the service pack and the product found in the 5.1.1. That is, the only substantive will be that 5.1.1 will also
include the examples.
"<=one way=>" wrote:
With reference to your and other messages, it appears that one should not
expect that WLS RMI-IIOP will work in a complex real-life system, at least
not now. In other words, support for real-life CORBA clients is not an
option in the current release of WLS.
TIA
"Eduardo Ceballos" <[email protected]> wrote in message
news:[email protected]...
We currently publish an IDL example, even though the IDL programmingmodel in Java is completely non-functional, in anticipation of the support
needs for uses who need to use IDL to talk to the Weblogic server,
generically. This example illustrates the simplest connectivity; it does not
address how
to integrate CORBA and EJB, a broad topic, fraught with peril, imo. I'llnote in passing that, to my knowledge, none of the other vendors attempt
this topic either, a point which is telling if all the less happy to hear.
For the record then, what is missing from our distribution wrt RMI-IIOPare a RMI-IIOP example, an EJB-IIOP example, an EJB-C++. In this you are
correct; better examples are forth coming.
Still, I would not call our RMI-IIOP implementation fragile. I would saythat customers have an understandably hard time accepting that the IDL
programming model is busted; busted in the sense that there are no C++
libraries to support the EJB model, and busted in the sense that there is
simply no
support in Java for an IDL interface to an EJB. Weblogic has nothing to doit being busted, although we are trying to help our customers deal with it
in productive ways.
For the moment, what there is is a RMI (over IIOP) programming model, aninherently Java to Java programming model, and true to that, we accept and
dispatch IIOP request into RMI server objects. The way I look at it is this:
it's just a protocol, like HTTP, or JRMP; it's not IDL and it has
practically nothing to do with CORBA.
ST wrote:
Eduardo,
Can you give us more details about the comment below:
I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult ot
use an idl client in java to work.It seems to me that Weblogic's RMI-IIOP is a very fragile
implementation. We
don't need a "HelloWorld" example, we need a concrete serious example(fully
tested and seriously documented) that works so that we can get a betteridea
on how to integrate CORBA and EJB.
Thanks,
Said
"Eduardo Ceballos" <[email protected]> wrote in message
news:[email protected]...
Please post request to the news group...
As I said, you must separate the idl related classes (class files and
java
files) from the rmi classes... in the rmic step, you must set a newtarget
(as you did), emit the java files into that directory (it's not clearyou
did this), then remove all the rmi class files from the class path... ifyou
need to compile more classes at that point, copy the java files to theidl
directly is you must, but you can not share the types in any way.
I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult otuse
an idl client in java to work.
Harindra Rajapakshe wrote:
Hi Eduardo,
Thanks for the help. That is the way I compiled my CORBA client, by
separating the IDL-generated stubs from the RMI ones, but still I
get a
CORBA.BAD_PARAM upon narrowing the client proxy to the interfacetype.
Here's what I did;
+ Define the RMI interfaces, in this case a StockTrader interface.
+ Implement RMI interface by extendingjavax.rmi.PortableRemoteObject
making
it IIOP compliant
+ Implemnnt an RMI server, and compile using JDK1.2.2
+ use the RMI implementation to generate CORBA idl, using RMI-IIOPplugin
utility rmic;
rmic -idl -noValueMethods -always -d idl stock.StockTraderImpl
+ generate Java mappings to the IDL generated above, using RMI-IIOPplugin
util,
idlj -v -fclient -emitAll -tf src stocks\StockTrader.idl
This creates source for the package stock and also
org.omg.CORBA.*
package, presumably IIOP type marshalling
+ compile all classes generated above using JDK1.2.2
+ Implement client (CORBA) using the classes generated above, NOTthe
RMI
proxies.
+ start RMI server, with stockTrader server obj
+ start tnameserv
+ start CORBA client
Then the client errors when trying to narrow the obj ref from the
naming
service, into the CORBA IDL defined interface using,
org.omg.CORBA.Object obj =naming.resolve(nn);
StockTrader trader =StockTraderHelper.narrow(obj); // THIS
ERRORS..!!!
throwing a CORBA.BAD_PARAM exception.
any ideas..?
Thanks in advance,
-hari
----- Original Message -----
From: Eduardo Ceballos <[email protected]>
Newsgroups: weblogic.developer.interest.rmi-iiop
To: Hari Rajapakshe <[email protected]>
Sent: Wednesday, July 26, 2000 4:38 AM
Subject: Re: problem using CORBA clients with RMI/EJBservers..!!!???
Please see the post on june 26, re Errors compiling... somewherein
there,
I suspect, you are referring to the rmi class file when you are
obliged
to
completely segregate these from the idl class files.
Hari Rajapakshe wrote:
Hi,
I have a question on using EJB / or RMI servers with CORBA
clients
using
RMI-IIOP transport, which in theory should work, but in practice
has
few
glitches.
Basically, I have implemented a very simple server,
StockTreader,
which
looks up for a symbol and returns a 'Stock' object. In the firstexample, I
simplified the 'Stock' object to be a mere java.lang.String, so
that
lookup
would simply return the 'synbol'.
Then I have implemented the above, as an RMI-IIOP server (case
1)
and a
CORBA server (case 2) with respective clients, and the pair of
client-servers work fine as long as they are CORBA-to-CORBA andRMI-to-RMI.
But the problem arises when I tried using the RMI server (via
IIOP)
with
the
CORBA client, when the client tries to narrow the object ref
obtained
from
the naming service into the CORBA idl defined type (StockTrader)
it
ends
up
with a class cast exception.
This is what I did to achieve the above results:
[1] Define an RMI interface StockTrader.java (extending
java.rmi.Remote)
with the method,
public String lookup( String symbol) throws RMIException;
[2] Implement the StorckTrader interface (on a
PortableRemoteObject
derived
class, to make it IIOP compliant), and then the server to
register
the
stock
trader with COS Naming service as follows:
String homeName =....
StockTraderImpl trader =new StockTraderImpl();
System.out.println("binding obj <" homeName ">...");
java.util.Hashtable ht =new java.util.Hashtable();
ht.put("java.naming.factory.initial", args[2]);
ht.put("java.naming.provider.url", args[3]);
Context ctx =new InitialContext(ht);
ctx.rebind(homeName, trader);
[3] Generate the RMI-IIOP skeletons for the Implementation
class,
rmic -iiop stock.StockTraderImpl
[4] generate the IDL for the RMI interface,
rmic -idl stock.StockTraderImpl
[5] Generate IDL stubs for the CORBA client,
idlj -v -fclient -emitAll StockTraderImpl.idl
[6] Write the client to use the IDL-defined stock trader,
String serverName =args[0];
String symList =args[1];
StockClient client =new StockClient();
System.out.println("init orb...");
ORB orb =ORB.init(args, null);
System.out.println("resolve init name service...");
org.omg.CORBA.Object objRef
=orb.resolve_initial_references("NameService");
NamingContext naming=NamingContextHelper.narrow(objRef);
... define a naming component etc...
org.omg.CORBA.Object obj =naming.resolve(...);
System.out.println("narrow objRef: " obj.getClass() ":"
+obj);
StockTrader trader =StockTraderHelper.narrow(obj);
[7] Compile all the classes using Java 1.2.2
[8] start tnameserv (naming service), then the server to
register
the
RMI
server obj
[9] Run the CORBA client, passing it the COSNaming service ref
name
(with
which the server obj is registered)
The CORBA client successfully finds the server obj ref in the
naming
service, the operation StockTraderHelper.narrow() fails in thesegment
below, with a class cast exception:
org.omg.CORBA.Object obj =naming.resolve(...);
StockTrader trader =StockTraderHelper.narrow(obj);
The <obj> returned by naming service turns out to be of the
type;
class com.sun.rmi.iiop.CDRInputStream$1
This is of the same type when stock trader object is registeredin a
CORBA
server (as opposed to an RMI server), but works correctly with
no
casting
excpetions..
Any ideas / hints very welcome.
thanks in advance,
-hari -
JAVA CORBA CLIENT NO RESOURCE EXCEPTION
I have developed a simple corba client in java to connect to an IACC server.
But while initiating a connection to the server I am getting following exception. Please help...
org.omg.CORBA.NO_RESOURCES: 10.x.x.x:900 in use Minor: 0 (0). Completed: not completed
at gnu.CORBA.gnuRequest.submit(libgcj.so.7rh)
at gnu.CORBA.IorDelegate.invoke(libgcj.so.7rh)
at org.omg.CORBA.portable.ObjectImpl._invoke(libgcj.so.7rh)
at org.omg.CosNaming._NamingContextExtStub.resolve_str(libgcj.so.7rh)
at IACCTest.main(IACCTest.java:56)
Here 10.x.x.x is my own server.
My client code is:
import IACC.Server;
class IACCTest{
public static void main(String args[]){
String ip = "170.y.y.y";
String port = "3075";
String nameSrv = "IAMDN_ONM";
Server _mServer=null;
org.omg.CORBA.Object _obj = null;
Properties iacc_properties = System.getProperties();
String iacc_nsref = "corbaloc:iiop:1.2@" + ip +":"+ port +"/NameService";
iacc_properties.put( "org.omg.CORBA.ORBInitRef", iacc_nsref );
Sring iacc_name = nameSrv +"/"+ "IACC_Server";
ORB orb = ORB.init(args, iacc_properties);
org.omg.CORBA.Object objRef=null;
try {
objRef = orb.resolve_initial_references("NameService");
} catch (InvalidName ex) {
ex.printStackTrace();
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
try {
_obj = ncRef.resolve_str(iacc_name);//At this point the exception is coming
} catch (CannotProceed ex) {
ex.printStackTrace();
} catch (org.omg.CosNaming.NamingContextPackage.InvalidName ex) {
ex.printStackTrace();
} catch (NotFound ex) {
ex.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
_mServer = ServerHelper.narrow(_obj);
}Please help me resolve this issue as soon as possible......The stacktrace you posted definitely tells me that you're running gij/gcj. You're probably not using the java version you think you are. Try the "java -version" to show which one is run.
You might want to give the full path to the JDK to ensure you're running the correct version. Or simply uninstall gcj/gij. -
How to get user defined class in java client of a bpel prcoess?
I have written a simple bpel process which returns a bean class namely employee which has three String fields(name,id and email). From java client when I am invoking the prcoess the prcoess instance is starting and completing properly. From Bpel console when I check the audit of the instance, it shows everything as expected. But in client class instead of three strings I am getting only first string i.e email in response. I checked the mapping and all WSDL files but could not find a proper reason. I am attaching the wsdls of bpel prcoess and the client code:
BPELProcess5.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="BPELProcess5"
targetNamespace="http://xmlns.oracle.com/BPELProcess5"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:client="http://xmlns.oracle.com/BPELProcess5"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:sq="http://xmlns.oracle.com/BPELProcess5/bean">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/BPELProcess5/bean"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="employeetype" >
<all>
<element name="fname" type="string"/>
<element name="lname" type="string"/>
<element name="id" type="string"/>
</all>
</complexType>
</schema>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/BPELProcess5"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/BPELProcess5/bean"/>
<element name="BPELProcess5ProcessRequest">
<complexType >
<sequence>
<element name="input" type="string"/>
</sequence>
</complexType>
</element>
<!--
<element name="BPELProcess5ProcessResponse">
<complexType >
<sequence>
<element name="output" type="sq:employeetype"/>
</sequence>
</complexType>
</element>
-->
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="BPELProcess5RequestMessage">
<part name="payload" element="client:BPELProcess5ProcessRequest"/>
</message>
<message name="BPELProcess5ResponseMessage">
<part name="payload" type="sq:employeetype"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the BPELProcess5 BPEL process -->
<portType name="BPELProcess5">
<operation name="process">
<input message="client:BPELProcess5RequestMessage" />
<output message="client:BPELProcess5ResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="BPELProcess5">
<plnk:role name="BPELProcess5Provider">
<plnk:portType name="client:BPELProcess5"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
BPELPrcoess5.bpel
// Oracle JDeveloper BPEL Designer
// Created: Thu Jul 14 16:50:15 IST 2005
// Author: Arka
// Purpose: Synchronous BPEL Process
-->
<process name="BPELProcess5" targetNamespace="http://xmlns.oracle.com/BPELProcess5" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://demows/handler/SessionEJB.wsdl" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xmlns.oracle.com/BPELProcess5/bean" xmlns:client="http://xmlns.oracle.com/BPELProcess5" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"><!-- ================================================================= --><!-- PARTNERLINKS --><!-- List of services participating in this BPEL process --><!-- ================================================================= -->
<partnerLinks><!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="client:BPELProcess5" myRole="BPELProcess5Provider"/>
<partnerLink myRole="SessionEJBPortType_Role" name="PartnerLink_1" partnerRole="SessionEJBPortType_Role" partnerLinkType="ns1:SessionEJBPortType_PL"/>
</partnerLinks><!-- ================================================================= --><!-- VARIABLES --><!-- List of messages and XML documents used within this BPEL process --><!-- ================================================================= -->
<variables><!-- Reference to the message passed as input during initiation -->
<variable name="inputVariable" messageType="client:BPELProcess5RequestMessage"/><!--
Reference to the message that will be returned to the requester
-->
<variable name="outputVariable" messageType="client:BPELProcess5ResponseMessage"/>
<variable name="Invoke_1_getEmployee_InputVariable" messageType="ns1:getEmployee1Request"/>
<variable name="Invoke_1_getEmployee_OutputVariable" messageType="ns1:getEmployee1Response"/>
</variables><!-- ================================================================= --><!-- ORCHESTRATION LOGIC --><!-- Set of activities coordinating the flow of messages across the --><!-- services integrated within this business process --><!-- ================================================================= -->
<sequence name="main"><!-- Receive input from requestor.
Note: This maps to operation defined in BPELProcess5.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="inputVariable" createInstance="yes"/><!-- Generate reply to synchronous request -->
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload" query="/client:BPELProcess5ProcessRequest/client:input"/>
<to variable="Invoke_1_getEmployee_InputVariable" part="empid"/>
</copy>
</assign>
<invoke name="Invoke_1" partnerLink="PartnerLink_1" portType="ns1:SessionEJBPortType" operation="getEmployee" inputVariable="Invoke_1_getEmployee_InputVariable" outputVariable="Invoke_1_getEmployee_OutputVariable"/>
<assign name="Assign_2">
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/fname"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:fname"/>
</copy>
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/lname"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:lname"/>
</copy>
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/id"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:id"/>
</copy>
</assign>
<reply name="replyOutput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="outputVariable"/>
</sequence>
</process>
myClient.java
package mypackage2;
import bean.EmployeeBean;
import java.rmi.RemoteException;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.encoding.XMLType;
import javax.xml.rpc.soap.SOAPFaultException;
import org.apache.axis.Constants;
import org.apache.axis.client.Call;
public class myClient
private static QName SERVICE_NAME;
private static QName PORT_TYPE;
private static QName OPERATION_NAME;
private static String SOAP_ACTION;
private static String STYLE;
private static String THIS_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
private static String PARAMETER_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
private String location;
static
SERVICE_NAME = new QName(THIS_NAMESPACE,"BPELProcess5");
PORT_TYPE = new QName(THIS_NAMESPACE,"BPELProcess5") ;
OPERATION_NAME = new QName(THIS_NAMESPACE,"BPELProcess5ProcessRequest");
SOAP_ACTION = "process";
STYLE = "wrapped";
public myClient()
public void setLocation(String location)
this.location = location;
public void initiate(String symbol)
try
DeserializerImpl des = new DeserializerImpl();
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService( SERVICE_NAME );
Call call = (Call)service.createCall( PORT_TYPE );
call.setTargetEndpointAddress( location );
call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
call.setOperationName(OPERATION_NAME);
call.addParameter(new QName(PARAMETER_NAMESPACE,"input"), XMLType.XSD_STRING, ParameterMode.IN);
Object[] params = new Object[1];
params[0] = "1";
call.setReturnType(new QName("http://xmlns.oracle.com/BPELProcess5", "BPELProcess5ProcessResponse"), EmployeeBean.class);
EmployeeBean response = (EmployeeBean)call.invoke(params);
System.out.println( " BPEL process initiated" );
catch (SOAPFaultException e)
System.err.println("Generated fault: ");
System.out.println (" Fault Code = " + e.getFaultCode());
System.out.println (" Fault String = " + e.getFaultString());
catch (JAXRPCException e)
System.err.println("JAXRPC Exception: " + e.getMessage());
catch (ServiceException e)
System.err.println("Service Exception: " + e.getMessage());
catch(RemoteException e)
System.err.println("Remote Exception: " + e.getMessage());
public static void main(String[] args)
String location = "http://localhost:9700/orabpel/default/BPELProcess5/1.0";
myClient client = new myClient();
client.setLocation( location );
client.initiate( "" );
}Hi Abdul,
From the document, we know that CONSTRAINED flag is used to reduce the risk of injection attacks via the specified string. If a string is provided that is not directly resolvable to qualified
or unqualified member names, the following error appears: "The restrictions imposed by the CONSTRAINED flag in the STRTOSET function were violated."
So you need to make sure the members are passed properly to the STRTOSET function. For more details, please see the following links:
http://ch1n2.wordpress.com/2010/02/21/the-restrictions-imposed-by-the-constrained-flag-in-the-strtoset-function-were-violated/
http://www.bp-msbi.com/2010/04/passing-unconstrained-set-and-member-parameters-between-reports-in-reporting-services/
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Compilation Error for import classes not found in generated Proxy Class
Hi,
We are generating java classes for the COM dll using JCOM com2java compiler.
We are getting a compilation error for import class not found when compiling the
generated Proxy java source code. It can't find the com.bea.jcom.Dispatch class that
the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
or com.bea.jcom.Param. These are interfaces or data types or classes used by COM
library.
I added weblogic.jar to my class path and the only Dispatch class i found inside
the weblogic.jar is com.linar.jintegra.Dispatch;
We have com objects for which we want to develop an EJB client to interface with
the COM object using JCOM with Native Mode disabled.
Any help on the compilation error..I tried changing the extends for Dispatch to com.linar.jintegra.Dispatch
but the other errors are still there.
To begin with, I think the generated code should not refer to any of the COM data
types.
Any help please.
Thank you in advance,
Regards,
Rahul Srivastava
[email protected]Hi,
I resolved the other errors by changing all references from com.bea.jcom.Variant
etc to com.linar.jintegra.class name..all were present under the com.linar.jintegra
package.
Thank you all anyways,
Regards,
rahul
"Rahul Srivastava" <[email protected]> wrote:
>
Hi,
We are generating java classes for the COM dll using JCOM com2java compiler.
We are getting a compilation error for import class not found when compiling
the
generated Proxy java source code. It can't find the com.bea.jcom.Dispatch
class that
the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
or com.bea.jcom.Param. These are interfaces or data types or classes used
by COM
library.
I added weblogic.jar to my class path and the only Dispatch class i found
inside
the weblogic.jar is com.linar.jintegra.Dispatch;
We have com objects for which we want to develop an EJB client to interface
with
the COM object using JCOM with Native Mode disabled.
Any help on the compilation error..I tried changing the extends for Dispatch
to com.linar.jintegra.Dispatch
but the other errors are still there.
To begin with, I think the generated code should not refer to any of the
COM data
types.
Any help please.
Thank you in advance,
Regards,
Rahul Srivastava
[email protected] -
Java client failing to connect to web service - help!!
Hi
I have created a Web service using ASP Web Matrix, which currently resides on my C drive in c:\Service6\HelloWorld.asmx.
The service can be tested from a browser on my local machine by calling: http://localhost/Service6/HelloWorld.asmx. This works fine, i.e. it takes a string as a parameter and returns an amended string.
When I try to access this from a Java client I created in Netbeans, however, I get the following error message:
Server did not recognize the value of HTTP Header SOAPAction: sayHiya.
at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
Can anyone advise what I am doing wrong?
[nb. I have spent over a week trying to sort this, so I have tried!!)
The code for the client follows:-
// The Axis package is used to generate and handle the SOAP call
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
// The rpc package is used to create the RPC call
import javax.xml.namespace.QName;
import javax.xml.rpc.NamespaceConstants;
// The java.net package gives a URL class
import java.net.URL;
public class HelloWorldClient {
/** Creates a new instance of HiyaClient */
public static void main(String[] args)
try
String endpoint = "http://localhost/Service6/HelloWorld.asmx";
Service service = new Service();
Call call = (Call) service.createCall();
// Configure the call
call.setTargetEndpointAddress(new URL(endpoint));
call.setSOAPActionURI("sayHello");
call.setEncodingStyle(NamespaceConstants.NSURI_SOAP_ENCODING);
call.setOperationName(new QName("urn:HelloWorld", "sayHello"));
//call.setReturnType(XMLType.XSD_STRING);
System.out.println("**Works to here**");
//Invoke the call
String result = (String) call.invoke(new Object[] { "Diane" });
System.out.println("Sent 'Diane', got '" + result + "'");
catch(Exception e)
System.err.println(e.toString());Hiya, did try that - tried
"http://localhost:8080/HelloWorld.asmx" and
"http://localhost:8080/Service6/HelloWorld.asmx" and it still didn't work.
Thanks anyway.
Anyone else got any bright ideas? -
Jax-ws deployed in standalone client fails with nullpointerexception
I have a project which has deployed successfully as a standalone client with deployed jar files wlfullclient.jar, etc. When I add the jax-ws functions that I require, the deployed client fails with a nullpointerexception that is generated from the constructor of the Service class. The project runs successfully within the JDeveloper 11.1.1.5 environment and on a weblogic 10.3 server platform, but fails when I deploy as a standalone client with the wlfullclient.jar. I'm using JDK 1.6.0_24. In testing, the error occurs when I replace the {WLHome}\server\lib\weblogic.jar entry in the classpath with the wlfullclient.jar.
I tested from another angle by creating my jax-ws functions in a standalone deployment, and it works successfully communicates with the webservices. No additional entries on the classpath besides my deployed jar. I then added to my deployment a simple JMS context lookup:
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY, contextFactoryProvider);
ht.put(Context.PROVIDER_URL, urlString);
Context context = new InitialContext(ht);
This test runs without error in the JDeveloper environment. As soon as I add the wlfullclient.jar in the standalone environment, I get the following exception:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/ws/spi/ProviderImpl
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:630)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
at javax.xml.ws.spi.FactoryFinder.safeLoadClass(FactoryFinder.java:150)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:30)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:90)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
Interestingly, there is a class com/sun/xml/internal/ws.spi/ProviderImpl in the {JAVA_HOME}/jre/lib/rt.jar file, and I suppose this is what is used by the jax-ws classes when the wlfullclient.jar is not present on the classpath.
So, what is it that I am missing in how to get the jax-ws classes and the jms classes to work in the standalone deployment environment (outside of the JDeveloper environment).
Edited by: user3653687 on Jan 9, 2012 1:38 PM
Edited by: user3653687 on Jan 9, 2012 2:49 PMHere is how I solved this problem to execute the application from a jar file (using Oracle Fusion Middleware 11.1.1.5.0 distribution). The key seems to be to extract the contents of the wseeclient.zip file into the same directory as the wlfullclient.jar and ws.api_1.1.0.0.jar files and then ensure that these 2 jars are on the classpath.
In JDeveloper, create a project that has the jms/jax-ws classes.
Put the following text entries to form the classpath (along with other dependent jars, e.g. org.eclipse.persistence...) into a file which will be included in the manifest for the client jar. Be sure to separate entries with a space.
lib/wlfullclient.jar lib/wseeclient.jar lib\ws.api_1.1.0.0.jar lib\org.eclipse.persistence_1.1.0.0_2-1.jar
In the Edit Deployment Profile Properties, select Include Manifest File, specify the main class to execute, and Add the classpath file to be included in the manifest.
Deploy the jar file.
In a deployment area, create the directory that will contain all the classpath jars (e.g. ./lib).
Within the directory ./lib, extract all files from wseeclient.zip (found in {weblogic home}/server/lib)
Copy wlfullclient.jar into the directory ./lib from the {weblogic home}/server/lib
Copy ws.api_1.1.0.0.jar into the directory ./lib from {oracle middleware home}modules
Copy org.eclipse.persistence_1.1.0.0_2-1.jar (for jaxb support) itno the directory ./lib from {oracle middleware home}/modules
Copy the deployed client jar to the deployment area and execute, e.g.:
java -jar ClientTest.jar myArguments -
Inner class vs. imported class
Hi everyone,
I have entitiy beans created for a client's web app I'd like to use in the
web service using WebLogic Workshop 7.0. Say the classes are imported like
this in the services:
import com.hoike.clientname.ap.bean.Invoice
import com.hoike.clientname.ap.bean.Vendor
Instances of these classes are used in callback methods and some of the
service methods.
When I generate the CTRL file, it actually adds those imported classes as
inner class of the service defined.
The problem is that when I try to used these services from another service,
I cannot use the imported classes (as Invoice or Vendor), but instead I have
to use the inner class (InvoiceService.Invoice or VendorService.Vendor)
Does WebLogic Workshop 7.0 only allow you to use inner classes? Is there a
way to use custom classes as method parameters?
Thanks in advance!
Makotohow do you declare your inner class?
Is it (public)
public static class MyInnerClassor (private)
private static class MyInnerClassor (package)
static class MyInnerClassor (protected)
protected static class MyInnerClassTry to change the way you declare the inner class. Use protected or package or public instead. -
How can i implement RMI Activatable for CORBA clients
Hi, i need some help to implement RMI Activatable for CORBA clients, i was reading the CORBA specifications, that is used PortableRemoteObject.exportObject(this) in the server contructor. but in hte moment to execute rmic -iiop returns the next error:
error: java.rmi.server.RemoteServer is not a valid remote implementation: has no
remote interfaces.
1 error
so. my question is. how can i implent this funtionality on my RMI server that extends Activatable class ?
i would like that you could give me some help, about it
greetings !!You can't.
-
hi all,
i m working in a company my boss give me a IDL file and a URL.
on base of it i made a corba client.
but it gives me following error
handle for corba object=com.sun.corba.se.internal.iiop.CDRInputStream_1_0$1:IOR:0000000000000001
00000000000000010000000000000054000102000000000b3137322e31362e322e3400000c0300000000000b4e616d65536572766963650000000001000000010000002000
Exception in thread "main" java.lang.StackOverflowError
at com.sun.corba.se.internal.iiop.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:18)
at com.sun.corba.se.internal.iiop.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:385)
at com.sun.corba.se.internal.iiop.CDRInputStream_1_0.read_ulong(CDRInputStream_1_0.java:403)
at com.sun.corba.se.internal.iiop.CDRInputStream.read_ulong(CDRInputStream.java:177)
at com.sun.corba.se.internal.core.CodeSetComponentInfo$CodeSetComponent.read(CodeSetComponentInfo.java:48)
at com.sun.corba.se.internal.core.CodeSetComponentInfo.read(CodeSetComponentInfo.java:107)
at com.sun.corba.se.internal.ior.TaggedComponentFactories$2.readContents(TaggedComponentFactories.java:66)
at com.sun.corba.se.internal.ior.ComponentFactoryBase.create(TaggedComponentFactories.java:30)
at com.sun.corba.se.internal.ior.TaggedComponentFactoryFinder.create(TaggedComponentFactoryFinder.java:64)
at com.sun.corba.se.internal.ior.IdEncapsulationContainerBase.readIdEncapsulationSequence(IdEncapsulationContainerBase.java:44)
at com.sun.corba.se.internal.ior.IIOPProfile.<init>(IIOPProfile.java:93)
at com.sun.corba.se.internal.ior.TaggedProfileFactoryFinder.create(TaggedProfileFactoryFinder.java:49)
at com.sun.corba.se.internal.ior.IdEncapsulationContainerBase.readIdEncapsulationSequence(IdEncapsulationContainerBase.java:44)
at com.sun.corba.se.internal.ior.IOR.<init>(IOR.java:162)
at com.sun.corba.se.internal.core.IOR.<init>(IOR.java:224)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.read(ReplyMessage_1_2.java:154)
at com.sun.corba.se.internal.iiop.IIOPInputStream.unmarshalHeader(IIOPInputStream.java:123)
at com.sun.corba.se.internal.iiop.IIOPConnection.getResponse(IIOPConnection.java:668)
at com.sun.corba.se.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStream.java:121)
at com.sun.corba.se.internal.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:76)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:235)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:277)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:840)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:849)hi all,
i did some more work but now it gives following error
Corba Object Reference=com.sun.corba.se.internal.iiop.CDRInputStream_1_0$1:IOR:000000000000000100000000000000010000000000000
ERROR : org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x49540000 minor code: 256 completed: No
org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x49540000 minor code: 256 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90)
at com.sun.corba.se.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:105)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:309)
at com.sun.corba.se.internal.corba.ClientDelegate.is_a(ClientDelegate.java:840)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at Tabs.APIServantHelper.narrow(APIServantHelper.java:63)
at client.main(client.java:34) -
This is the situation we have:
1) We must support both C++ and Java clients that will be requesting
services from our EJBs running in WLS. The clients are internal apps running
in different companies and we would prefer to avoid requiring our clients to
use an ORB by a specific vendor. At the same time we do not want to deal
with potential problems related to the implementation differences by
different ORB vendors. What would be the best way to handle this situation?
2) WLS documentation has the following paragraph:
"WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping support.
Currently, however, a standard for passing user identity -- required to
implement EJB-to-CORBA mapping -- does not exist and the requirement for
transaction propagation from the client is in question. While RMI over IIOP
does allow CORBA clients to access EJBeans, the following services will not
be available:
EJB transaction services
EJB security services"
Does this mean that:
2.1) CORBA client initiated transactions will not be supported,
everything will work
2.2) None of the EJB security services will be available in EJB method
called by a CORBA client (i.e. getCallerPrincipal() and isCallerInRole()
will fail)
Thanks in advanceGenerally speaking, applications are built around common resources, namely the databases and security realms. Here, it seems you can't make any assumptions about the client at all, so you render useless the ability to propagate the transaction and security context; the upshot being that you couldn't
use it, even if we provided support for it, which we don't.
You also want to be shielded from all the incompatibilities between the ORB vendors, that is, you want to provide a client interface to call into an ejb, that will work irrespective of the orb the client runs. From this, I gather that you can have a 1.0 or 2.1 Tao, Visibroker, IONA, etc, orb as a
client, so you can not use objects in the interface.
To accomplish this, you need to do the following:
-- design the client interface so that it is stateless
-- design the interface so that it does not include any objects or structs... actually, you can use structs, it's just more complicated.
-- use server side transactions only (this follows from the statelessness of the interface)
-- either assume that ssl will be in place by the time you need it or include a token in the interface for the authenticated user
Please, read on...
"<=one way=>" wrote:
This is the situation we have:
1) We must support both C++ and Java clients that will be requesting
services from our EJBs running in WLS. The clients are internal apps running
in different companies and we would prefer to avoid requiring our clients to
use an ORB by a specific vendor. At the same time we do not want to deal
with potential problems related to the implementation differences by
different ORB vendors. What would be the best way to handle this situation?
We support IIOP as the transport. To call into any remote interface, you must provide a java.rmi.Remote interface, and code generate the IDL from that interface using weblogic.rmic. If you follow the above strictures, and use the -noValueTypes discussed earlier, you should be able to make progress
without the promised examples.... or you can wait for the examples.
>
2) WLS documentation has the following paragraph:
"WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping support.
Currently, however, a standard for passing user identity -- required to
implement EJB-to-CORBA mapping -- does not exist and the requirement for
transaction propagation from the client is in question. While RMI over IIOP
does allow CORBA clients to access EJBeans, the following services will not
be available:
EJB transaction services
EJB security services"
Does this mean that:
2.1) CORBA client initiated transactions will not be supported,
everything else (sic) will workYes.
>
2.2) None of the EJB security services will be available in EJB method
called by a CORBA client (i.e. getCallerPrincipal() and isCallerInRole()
will fail)No. The call will not fail, they will either provide values that correspond to the default or the user configured by the weblogic.iiop.user property.
>
>
Thanks in advance -
According to the article "Enterprise JavaBeans Components and CORBA Clients: A Developer Guide", CORBA clients can directly access an EJB bean via IIOP.
The procedure is like the followings:
1) Generate IDL files from EJB remote classes(Logger.class, LoggerHome.class).
2) Deliver IDL files to CORBA clients.
3) CORBA clients comple IDL files to a specific language(i.e., C++, Java, ...)
I used 'rmic', distributed with J2SDK 1.3 and 1.4, as a Java-to-IDL translator.
> rmic -idl -noValueMethods -classpath %j2ee_home%\lib\j2ee.jar;. ejbinterop.Logger ejbinterop.LoggerHome
But I encountered many problems while compiling Java source files, generated by 'idlj' of J2SDK 1.3 and 1.4, after the third step.
Anyone else experienced the same situation?
Any help will be appreciated.You most likely won't be able to make the "round trip" of
Java -> IDL -> Java
I believe the IDL to Java and Java to IDL specs at the OMG say that it's unsupported. -
Corba Client-side Servant inheritance
hi there,
I'm a student computer science and while running a project we encountered the following problem we couldn't solve(neither could our teachers an neither could the internet come up with anything usefull)
we tried to make a distributed program using Corba and Idl. in our design the servant class on the client side inherits functions of another servant on the client side. this way we couldn't use the "extends _implbase" way. the idea behind it was to use polymorhism with the client-side servant objects. the search for the holy grail had begun.
All over the net there were sollutions for making a Tie construction and thus being able to do create a similar design. it needed adjustement in the Server-class and the Server's servant.
And that was the problem. how to do it on the Client-side.
does anyone have an idea or example what changes I should make in the Client-class to be able to let the servant implement the operations class of the used interface?I'm not sure I really understand your question, but let me try to restate it:
The client side is also a CORBA remote object (servant), perhaps for callbacks. How do you provide different implementations without subclassing an implBase?
You kind of answered it yourself. Use the tie approach.
idlj -fallTIE your.idlWon't that do it? Your client servant is really just a proxy which passes the calls to the local object which implements the operations interface, and can therefore inherit from whatever class.
Am I missing something? -
Accessing EJB's from CORBA clients
Hi!
Can someone answer one badly important question?
Is it possible to access EJB's from CORBA clients directly, as if the
beans were ordinary CORBA objects? I mean DIRECT access - WIDHOUT
CORBA/Java server application as a liason between CORBA client and EJB
server!
I'm using WebLogic Enterprise 5.0.1.
Thanks in advance.
Aleksey.Please reference a later posting on this very same question.
-- Lou Caraballo
Sr. Systems Engineer
BEA Systems Inc., Denver Telco Group
719-332-0818 (cell)
720-528-6073 (denver)
Aleksey Bukavnev <[email protected]> wrote in message
news:[email protected]..
Thank you!
Aleksey.
Bill Lloyd wrote:
There is a java to IDL mapping, which is quite complex. To use it, you
must
have an ORB which supports, at minimum, CORBA 2.3. ORBs I know of which
support this include Orbix 2000 for Java, Visibroker 4.0 for Java, and
Orbacus 4.0 for Java.
Also, check out the June 2000 "Java Report" which has an article onthis.
>>
To be perfectly honest, though, the best solution is to write a bridge,in
Java. One side is IDL, which CORBA clients use. The implementation ofthat
IDL makes RMI requests to get the necessary info. This solution willwork,
guaranteed. The portion of the spec for the java to IDL mapping isstill
quite new, and I would expect some, uh, "unexpected features" at thistime.
>>
-B
"Aleksey Bukavnev" <[email protected]> wrote in message
news:[email protected]..
Hi!
Can someone answer one badly important question?
Is it possible to access EJB's from CORBA clients directly, as if the
beans were ordinary CORBA objects? I mean DIRECT access - WIDHOUT
CORBA/Java server application as a liason between CORBA client and EJB
server!
I'm using WebLogic Enterprise 5.0.1.
Thanks in advance.
Aleksey.
Maybe you are looking for
-
Questions on SAP/SF PO Integration & SF BizX RBP
Dear Experts, We are implementing SAP HCM and SF. SF goes live before SAP. We'll have a transition period from Flat File upload to SAP PO integration. Would anyone have any recommendation on how to ensure a smooth seamless transition? We have tested
-
Apple Web Site Default Icon, Gone..
Hi There, I seem to have tossed my Apple Web Site Default Icon.. I remember seeing the puff of smoke which means I moved it a little to far, and now I'd like to get it back. You know the one, it looks like an A, or an @ on a spring or something.. Any
-
Fonts not appearing under all users
I have recently performed a clean install on one of our G5s. When I installed the our corporate fonts, the only appear in Font Book under the admin account and not the other user account. Whenever I try to add them to Font Book in the other user acco
-
Hello, I have a question regarding framework order (or blanket order) When I crate an order which is a frame order - Does tha SAP have an option that I can define that when a 85% of the order is used/ only 15% is left I will get an e-mail Alert?
-
Subtotal at the bottom each page
Hi, i have a report group type report and i need display subtotal at the bottom of each page, and in the next page the first row must be the subtotal of the previous page Example: page 1 subtotal page 1 ( 10 ) "sent" page 2 come from page 1 (10) subt