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.
Similar Messages
-
Problem using Java Webstart to kick off CORBA Client
Dear all,
I am currently having a problem in using the Java Webstart to kick off
the CORBA Client, I set up the JNLP file jvm properties as following:
<resources>
<j2se version="1.4*" java-vm-args="-Xms64m -Xmx256m -verbose -esa
-Xnoclassgc -client -Dswing.useSystemFontSettings=false ">
<resources>
<property name="vbroker.orb.initRef"
value="NameService=corbaloc::10.35.55.82:20005/NameService"/>
</resources>
</j2se>
</resources>
The problem I have is that when the webstart starting the client, the
client just simply dies during the startup and I find the log message
following:
org.omg.CORBA.ORBPackage.InvalidName
at com.inprise.vbroker.orb.ORB.resolve_initial_references(ORB.java:943)
So it is showing that there is problem with the vbroker.orb.initRef
setting, know that if I don't use the webstart to start the client and
simply use the windows batch file, using the jvm properties as:
java -Dvbroker.orb.initRef=NameService=corbaloc::10.31.51.80:20001/NameService
It would work perfectly.
Could you tell if I miss anything when configuing the webstart jnlp
file on this regard? Currently, I think that the only way I can set
the JVM properties in the JNLP file is to use its properties tag to
set the system properties for the application.
Thanks heaps in advance for any help you can give here !!!
VictorHi, Andre,
No, I have tried both of your suggestion and there was no joy. I still have the following error and the client jvm just crashes during starting up:
org.omg.CORBA.ORBPackage.InvalidName
at com.inprise.vbroker.orb.ORB.resolve_initial_references(ORB.java:943)
I believe it is still related to the jvm properties:
<property name="vbroker.orb.initRef" value="NameService=corbaloc::10.35.55.82:20005/NameService"/>
And know that when I used "-Dvbroker.orb.initRef=NameService=corbaloc::10.35.55.82:20005/NameService" in the windows batch file, the client runs ok.
Is this indicating that there is the limitation of using the webstart to invoke CORBA client?
Any further help would be very appreciated!
Victor -
Running a Corba Client as a Java Stored Procedure
Hi,
I�m trying to use a Java Stored Procedure running as a Corba Client. I want to use the built in Visibroker ORB on Oracle side and JacORB (or others) on the server side.
How can I init the ORB and get a naming service running not in Oracle but on the server side? Also which jar�s do I need to load into the db with (loadjava) to run the visibroker orb inside the Java Stored Procedure Client?
I�m using Oracle 8.1.7.
Thanks for help ;)By the way I�m using ORACLE 8.1.7.
-
Consuming dataservice as a stand alone java client, givng an exception com
when i am trying to access data service from a stand alone java application ,it giving an exception .
The dataservice is in remote machine.
Exception:
com.bea.dsp.dsmediator.client.exception.SDOMediatorException: weblogic.rjvm.PeerGoneException: ; nested exception is:
java.io.EOFException
at com.bea.dsp.dsmediator.client.XmlDataServiceBase.invokeFunction(XmlDataServiceBase.java:322)
at empldetappdataservices.EmployeeDetails.getEmployeesByid(EmployeeDetails.java:84)
at com.patni.tsg.poc.DataServiceClient.DataServiceClient.main(DataServiceClient.java:42)
Caused by: weblogic.rjvm.PeerGoneException: ; nested exception is:
java.io.EOFException
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)
at com.bea.ld.Server_ydm4ie_EOImpl_815_WLStub.executeFunction(Unknown Source)
at com.bea.dsp.dsmediator.client.XmlDataServiceBase.invokeFunction(XmlDataServiceBase.java:312)
... 2 more
Caused by: java.io.EOFException
at weblogic.rjvm.t3.T3JVMConnection.endOfStream(T3JVMConnection.java:897)
at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:586)
at weblogic.socket.SocketMuxer.deliverEndOfStream(SocketMuxer.java:536)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:694)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:641)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
my class path i added all neccessary jars:
weblogic.jar,xbean.jar,DataServices.jar,ld-server-core.jar,ld-client.jar,wlsdo.jar
code sample:
public static InitialContext getInitialContext() throws NamingException {
Environment env = new Environment();
env.setProviderUrl("t3://pc-p40892:7001");
env.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
env.setSecurityPrincipal("weblogic");
env.setSecurityCredentials("weblogic");
return new InitialContext(env.getInitialContext().getEnvironment());
public static void main (String args[]) {
try {
EmployeeDetailsDocument.EmployeeDetails edet=null;
EmployeeDetails ds=EmployeeDetails.getInstance(getInitialContext(),"EmplDetApp");
//The below statement generating the exception.
EmployeeDetailsDocument[]doc =ds.getEmployeesByid("1001");
} catch (Exception e) {
e.printStackTrace();
pls help me to solve this problem
Edited by sandeepc221 at 09/19/2007 2:50 AMYou didn't post the stack trace from the server, but I'm guessing it's complaining about the QName class. Sun changed the QName class in JDK 1.5 wreaking havoc on JDK 1.5 clients that use JDK 1.4 servers and attempt to pass a QName object from one to the other. If your client uses JDK 1.5, your sever will need to use a QName class which is compatible. The file liquiddata/lib/wls90interop.jar contains a QName class that is compatible with the one in JDK1.5. You can put it first in the classpath of your server.
If you already have wls90interop.jar first in the classpath of your server, then, for your client, you need to either (1) use the Sun JDK 1.5; or (2) put wls90interop.jar first in the classpath of your client (if you are running JDK 1.4).
http://e-docs.bea.com/aldsp/docs25/appdev/ejbclt.html#wp1090900
btw - BEA Customer Support is available 24/7 - they should be able to provide you quick answers to questions like this. -
Printing a hashtable to screen, Server & Client (Java & CORBA)
Hi all,
I have written a server method that prints a hashtable's contents to screen:
public void viewAllEquipment () throws noEquipmentInTable {
// Does any equipment exist?
if (equipmentList.isEmpty() == true) {
throw new noEquipmentInTable();
System.out.println("The equipment list is as follows: ");
Enumeration tableEntries = equipmentList.keys();
int i = 1;
while (tableEntries.hasMoreElements()) {
String names = (String) tableEntries.nextElement();
System.out.print(i + ". Name = " + names + ", Description = " + equipmentList.get(names));
i++;
}The Client uses simple code to call this method:
hireCompanyServant.viewAllEquipment();As I'm sure you're probably aware, the Hashtable's contents gets printed to the Server screen not the Client screen! How can I get it printing on the Client instead? I'm unsure whether returning a value via the method would work, and can't think of any other way to do this.
Any help would be greatly appreciated.
Thanks
Edited by: JonBetts2004 on Mar 7, 2008 5:14 AMHaha, ok sorry, will do. It's all command-line based, CORBA client-sever model.
Client: A file/program that implements and calls methods given by the Server.
Server: A file/program that contains methods that can be called by other clients/servers.
Screen: command line interface.
As it is a CORBA implementation, an ORB is started, then the Java Server is started, and finally the Java Client is run in the command prompt, which shows a list of actions to take (add equipment, edit equipment, view equipment, etc).
Sorry if that's too vague, I find these things hard to explain.
But basically, the 'client' makes use of the viewAllEquipment method provided by the 'server', which prints the contents of a hashtable to the command line. It is printed to the Server's command line rather than the Client's. I need it printing to the Client's command line, but am unsure what is the best way to approach it. Changing the method from a void to a string, and then returning a value? Or something else?
thanks -
Deploying a Java CORBA application in Web Start
I am a novice to Java Web Start. I have a sample Client-Server application with CORBA as a middle ware. The front end (Client) is in Java and back end (Server) is in C++. The application is run and tested with jar and batch file. Now I want to deploy that application in Java Web Start and JNLP.
I have configured the same by creating a JNLP file and signed jars.
Now as all knows any CORBA application needs a domain file ( .cfg ) and some org.omg classes to communicate with the server by RPC.
I am stuck with how to specify these domain file name, path, CORBA classes etc in my JNLP. Not even that, I can't understand exactly what configuration will make the CORBA apps work properly in Java Web Start so that it can communicate with the server as well. All the Orbix jars's, IDL Stub jars are present and signed. I am giving my JNLP file as a reference. Actually I have tried adding these domain files and CORBA classes as parameters. But as usual it is not working and after running the JNLP the Java console suddenly gets disappeared.
CORBADemo.jnlp
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://172.28.1.139:8400/Test_CORBA_App" href="CORBADemo.jnlp">
<information>
<title>CORBA Demo</title>
<vendor>Ushacomm</vendor>
</information>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib_6.3-Signed/UI_Fall_Test63.jar" main="true" download="eager" />
<jar href="lib_6.3-Signed/ConfigurationService.jar" download="eager" />
<jar href="lib_6.3-Signed/IDLStub.jar" download="eager" />
<jar href="lib_6.3-Signed/art-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/art.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls.jar" download="eager" />
<jar href="lib_6.3-Signed/codeset.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc.jar" download="eager" />
<jar href="lib_6.3-Signed/iiop.jar" download="eager" />
<jar href="lib_6.3-Signed/java_management_logging-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_mgmt_plugin-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_portable_interceptor-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management.jar" download="eager" />
<jar href="lib_6.3-Signed/mgmt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg.jar" download="eager" />
<jar href="lib_6.3-Signed/perf_logging.jar" download="eager" />
<jar href="lib_6.3-Signed/portable_interceptor.jar" download="eager" />
<property name="Dorg.omg.CORBA.ORBClass" value="com.iona.corba.art.artimpl.ORBImpl"/>
<property name="Dorg.omg.CORBA.ORBSingletonClass" value="com.iona.corba.art.artimpl.ORBSingleton"/>
<property name="ORBdomain_name" value="VOIAMODOMAINNEW"/>
</resources>
<application-desc name="CORBADemo Demo Application" main-class="Launch" width="300" height="300">
</application-desc>
<update check="background"/>
<argument>1</argument>
<security>
<all-permissions/>
</security>
</jnlp>
.*@ gimbal2 and EJP :*
The firewall is present and allowed to access apps. When I am running the jar of my application from batch file then everything is running fine. The CORBA Server is a remote RHEL5 (Enterprise Linux 5) machine whose 'IP' and 'Hostname' is specified in *"C:\WINDOWS\system32\drivers\etc\hosts"* file. Server is running fine and after starting the Client the Server side remote method is invoked. Data fetched properly and everything is working like a charm.
When running from batch (.bat) file using jar My applications folder hierarchy is something like this.
Test_CORBA_App
------+config ( contains resources file and domain file )
------+lib_6.3 ( contains all Jars)
------+log ( will contaiin the generated log files )
-------runCORBA_App.bat ( the batch file I am running )
As depicted above the folder hierarchy, my domain file resides in "config" folder. The contents of the batch file are as follows :
runCORBA_App.bat
C:\jdk1.6.0_14\bin\java -Xms64M -Xmx512M -Dorg.omg.CORBA.ORBClass=com.iona.corba.art.artimpl.ORBImpl -Dorg.omg.CORBA.ORBSingletonClass=com.iona.corba.art.artimpl.ORBSingleton -jar lib_6.3\UI_Fall_Test63.jar -ORBdomain_name VOIAMODOMAINNEW 1
pause
The following things are specified in the batch file :
1. JDK path : ( C:\jdk1.6.0_14\bin\java )
2. Java VM arguments for max and min memory : ( -Xms64M -Xmx512M )
3. ORB class name: ( -Dorg.omg.CORBA.ORBClass=com.iona.corba.art.artimpl.ORBImpl )
4. ORB singleton class name : ( -Dorg.omg.CORBA.ORBSingletonClass=com.iona.corba.art.artimpl.ORBSingleton )
5. Jar file name to run : ( -jar lib_6.3\UI_Fall_Test63.jar )
6. Domain Name : ( -ORBdomain_name VOIAMODOMAINNEW )
7. Main function args : ( 1 )
I am trying to deploy this simple CORBA application in Java Web Start and JNLP. I kept this in my tomcat server web apps. The folder hierarchy is as follows :
tomcat
---+ bin
---+ conf
---+ ..
---+ ..
---+ ..
---_ webapps
----------+ host-manager
----------+ manager
----------+ ..
----------+ ..
----------_ Test_CORBA_App
-------------------+ config
-------------------+ lib_6.3
-------------------+ lib_6.3-Signed
-------------------+ log
--------------------CORBADemo.jnlp (.jnlp file)
--------------------index.html (.html file)
As you can see I maintained the same folder structure as it was when running from batch file. The jars I am using is signed and kept in lib_6.3-Signed folder.
My updated "CORBADemo.jnlp" is :
CORBADemo.jnlp
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://172.28.1.139:8400/Test_CORBA_App" href="CORBADemo.jnlp">
<information>
<title>CORBA Demo</title>
<vendor>Ushacomm</vendor>
</information>
<resources>
<j2se version="1.6" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-Xms64M -Xmx512M 1" />
<jar href="lib_6.3-Signed/UI_Fall_Test63.jar" main="true" download="eager" />
<jar href="lib_6.3-Signed/ConfigurationService.jar" download="eager" />
<jar href="lib_6.3-Signed/IDLStub.jar" download="eager" />
<jar href="lib_6.3-Signed/art-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/art.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_cio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_ip_nio.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/atli2_tls.jar" download="eager" />
<jar href="lib_6.3-Signed/codeset.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/concurrency.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/ifc.jar" download="eager" />
<jar href="lib_6.3-Signed/iiop.jar" download="eager" />
<jar href="lib_6.3-Signed/java_management_logging-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_mgmt_plugin-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/java_portable_interceptor-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/management.jar" download="eager" />
<jar href="lib_6.3-Signed/mgmt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg-rt.jar" download="eager" />
<jar href="lib_6.3-Signed/omg.jar" download="eager" />
<jar href="lib_6.3-Signed/perf_logging.jar" download="eager" />
<jar href="lib_6.3-Signed/portable_interceptor.jar" download="eager" />
<property name="Dorg.omg.CORBA.ORBClass" value="com.iona.corba.art.artimpl.ORBImpl"/>
<property name="Dorg.omg.CORBA.ORBSingletonClass" value="com.iona.corba.art.artimpl.ORBSingleton"/>
<property name="ORBdomain_name" value="VOIAMODOMAINNEW"/>
</resources>
<application-desc name="CORBADemo Demo Application" main-class="Launch" width="300" height="300">
</application-desc>
<update check="background"/>
<argument>1</argument>
<security>
<all-permissions/>
</security>
</jnlp>
N.B
*1. I am running the Tomcat server in my own machine on port 8400 ( for sure, as I have deployed many .war files using this tomcat and all worked ). And using the URL below running the WebStart application.*
*2. I am running the JNLP from my own machine.*
*3. CORBA server is running on a remote RHEL 5 machine as I mentioned before also.*
URL : http://<My Machine IP>:8400/Test_CORBA_App/
As desired the Web Start application will make a call to the remote CORBA server on RHEL5 machine by initializing the ORB and resolving the CORBA NamingService. But exception is occurring as I posted in previous post i.e exception while resolving NamingService.
Now my query is whether the domain file ( DOMAIN.cfg ) is reading/ accessing properly from my machine while running the JNLP or not. Because I presume in Java Web Start special attention is required to read any .cfg file. If everything is fine why the error is occurring.
*@ EJP :* The ORB is desired to run and running on the CORBA Server remote macine i.e RHEL5 machine, because from batch file it is working fine.
Is it so that I need to run the Tomcat Web Server and CORBA Server from the same machine. -
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 -
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) -
Java EJB client "Can't connect to ORB" errors...
I'm writing an application that is a Java EJB client application (no web
stuff at all). Needless to say there are no examples of such an app in
the samples dir, they are all web-based.
My problem is that when I try to run my application (client calls a
stateless session bean on the server and gets a "hello world" string
back) I get a "Could not create the TestService bean:
javax.naming.CommunicationException: Cannot connect to ORB [Root
exception is org.omg.CORBA.COMM_FAILURE: minor code: 1 completed:
Maybe]" error.
This is a very simple test, and I'm getting quite frustrated in trying
to figure out what's actually wrong.
Here's the client code (the bean on the server has been deployed into a
module called achptestEjb, the bean name is TestService)
TestService service = null;
TestServiceHome home=null;
String host = "localhost";
String port = "12345";
try {
Properties env = new Properties();
Context context=null;
String jndiName="ejb/achptestEjb/TestService";
System.out.println("JNDI name is "+jndiName);
env.put
("java.naming.factory.initial","com.sun.jndi.cosnaming.CNCtxFactory");
env.put("java.naming.provider.url", "iiop://"+host+":"+port);
context = new InitialContext(env);
The error comes when the new InitialContext is set with the properties
in the env object.
Any ideas what I'm doing wrong?
It would be a BIG help if iPlanet included one simple pure EJB client
example. There are some of us out here who feel HTML is too limiting
for complicated applications.
Douglas BullardI finally found the answer to my problem.... in the Ant script I had
copied from another example, the "-iiop" was lacking in the ejbc
arguments - almost all of the examples assume you'll be calling EJBs
from within the container, instead of a stand-alone client, so they
don't use that flag.
Putting that "-iiop" flag into the ejbc arguments fixed everything.
Thanks, Shivani, for pointing out what is now obvious but was
mysterious.
Douglas Bullard
In article <[email protected]>,
[email protected] says...
I'm writing an application that is a Java EJB client application (no web
stuff at all). Needless to say there are no examples of such an app in
the samples dir, they are all web-based.
My problem is that when I try to run my application (client calls a
stateless session bean on the server and gets a "hello world" string
back) I get a "Could not create the TestService bean:
javax.naming.CommunicationException: Cannot connect to ORB [Root
exception is org.omg.CORBA.COMM_FAILURE: minor code: 1 completed:
Maybe]" error.
This is a very simple test, and I'm getting quite frustrated in trying
to figure out what's actually wrong.
Here's the client code (the bean on the server has been deployed into a
module called achptestEjb, the bean name is TestService)
TestService service = null;
TestServiceHome home=null;
String host = "localhost";
String port = "12345";
try {
Properties env = new Properties();
Context context=null;
String jndiName="ejb/achptestEjb/TestService";
System.out.println("JNDI name is "+jndiName);
env.put
("java.naming.factory.initial","com.sun.jndi.cosnaming.CNCtxFactory");
env.put("java.naming.provider.url", "iiop://"+host+":"+port);
context = new InitialContext(env);
The error comes when the new InitialContext is set with the properties
in the env object.
Any ideas what I'm doing wrong?
It would be a BIG help if iPlanet included one simple pure EJB client
example. There are some of us out here who feel HTML is too limiting
for complicated applications.
Douglas Bullard -
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 -
OC4J10.1.3.1 and OC4J10.1.3 as Corba Client to Visibroker Issue
Hi,
I try to use OC4J as a Corba client to connect to Visibroker.
It works on 0C4J10.1.3.1 but does not work with 0C4J10.1.3 and throws following exception :
java.lang.RuntimeException: com.inprise.vbroker.PortableInterceptor.ORBInitInfoImplExt
07/05/03 23:55:26 at oracle.oc4j.corba.iiop.server.IIOPInitializer.post_init(IIOPInitializer.java:89)
07/05/03 23:55:26 at com.inprise.vbroker.orb.ORB.initialize(ORB.java:1160)
07/05/03 23:55:26 at com.inprise.vbroker.orb.ORB.set_parameters(ORB.java:1332)
07/05/03 23:55:26 at org.omg.CORBA.ORB.init(ORB.java:337)
07/05/03 23:55:26 java.lang.NullPointerException
07/05/03 23:55:26 at com.orangecaraibe.commonapi.webservices.cmsapi.CMSAPIEndPoint.executeCMSCommand(Unknown Source)
07/05/03 23:55:26 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
07/05/03 23:55:26 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
07/05/03 23:55:26 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
07/05/03 23:55:26 at java.lang.reflect.Method.invoke(Method.java:585)
07/05/03 23:55:26 at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
07/05/03 23:55:26 at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
07/05/03 23:55:26 at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
07/05/03 23:55:26 at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
07/05/03 23:55:26 at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
07/05/03 23:55:26 at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
07/05/03 23:55:26 at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
07/05/03 23:55:26 at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
07/05/03 23:55:26 at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
07/05/03 23:55:26 at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
07/05/03 23:55:26 at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
07/05/03 23:55:26 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
07/05/03 23:55:26 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:719)
07/05/03 23:55:26 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
07/05/03 23:55:26 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
07/05/03 23:55:26 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
07/05/03 23:55:26 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
07/05/03 23:55:26 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
07/05/03 23:55:26 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
07/05/03 23:55:26 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
07/05/03 23:55:26 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230)
07/05/03 23:55:26 at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33)
07/05/03 23:55:26 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831)
07/05/03 23:55:26 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
07/05/03 23:55:26 at java.lang.Thread.run(Thread.java:595)
What are the differences between OC4J10.1.3.1 and OC4J10.1.3?
Please advise
JOUnable to establish connection. Error message: Exception occurred testing connection.
Exception: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor The Connection descriptor used by the client was: //10.182.x.x:1521/orclThis error is coming from the database listener -- it looks to me like you need to alter the network configuration at the database level to support access via a SID instead of a Service Name. -
Connect Java PAPI client to 5.7 Studio embedded engine?
I am coding and unit testing some integration of java PAPI client code against a process inALBPM 5.7. But, it is very cumbersome to have to do a fully deploy to a bpm server to do this unit testing.
Is it possible to configure the properties used to create the ProcessService object to connect to the engine that is launched from within the Studio so that I can test locally on my PC? What would the directory.properties have to look like to do so?
ToddHi Adam,
Could you please explain more about this?
I want to use PAPI against my local BPM studio. I have the project at "C:\OracleBPMWorkspace\TestProcess". I tried to point the directory to the project, as you suggested. Am i doing it correctly? I get the below exception. Could somebody help me?
Thanks
raj
Configuration:
Properties configuration = new Properties();
configuration.setProperty(ProcessService.DIRECTORY_ID, "Default");
configuration.setProperty(ProcessService.DIRECTORY_PROPERTIES_FILE, "C:\\OracleBPMWorkspace\\TestProcess");
configuration.setProperty(ProcessService.WORKING_FOLDER, "/tmp");
Exception:
java.lang.IllegalStateException: directory configuration runtime fails to initilize with resource: C:\OracleBPMWorkspace\TestProcess
at fuego.directory.DirectoryConfigurationManager.getDirectoryConfiguration(DirectoryConfigurationManager.java:335)
at fuego.directory.DirectoryConfigurationManager.getDirectoryConfigType(DirectoryConfigurationManager.java:313)
at fuego.directory.provider.Factory.getDirectoryFactory(Factory.java:216)
at fuego.directory.Directory.startAnonymousSession(Directory.java:211)
at fuego.papi.impl.ProcessServiceFactoryImpl.obtainSchemaId(ProcessServiceFactoryImpl.java:193)
at fuego.papi.impl.ProcessServiceFactoryImpl.create(ProcessServiceFactoryImpl.java:75)
at fuego.papi.impl.ProcessServiceFactoryImpl.create(ProcessServiceFactoryImpl.java:63)
at fuego.papi.ProcessService.create(ProcessService.java:335)
at com.thomson.tssq.j2012.bpms.PAPI_Test.main(PAPI_Test.java:35) -
Invoking a BPEL Process via Java Remote Client
Hi everyone!
I want to invoke a BPEL process from my Java Application which is not running on the same Application-Server (not the same Java RE) as the BPEL processmanager does.
For Applications running on the same AS there is the IDeliveryService class to which you can send a XML-request in order to invoke a BPEL process.
Is the only way to invoke a BPEL Process from an external application to use a webservice client or is there a similar class for java remote clients?
For access to the users worklist I use
IWorkflowServiceClient wfClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);
it works fine an I thought there might be a similar way to invoke a bpel process via remote too.
If anyone knows if it's possible or not please tell me ;)
Thanks in advance
MarkusHello,
Here is the code I use:
Properties props = new Properties();
Locator locator = null;
props.put("orabpel.platform", "ias_10g" );
props.put("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory" );
props.put("java.naming.provider.url","opmn:ormi://host:port/orabpel" );
props.put("java.naming.security.principal", "adminuser" );
props.put("java.naming.security.credentials", "mdp" );
String securityCredentials = "adminuser";
String selectedDomain = "default";
locator = new Locator(selectedDomain,securityCredentials,props);
IBPELProcessHandle procs[] = locator.listProcesses();
The error is:
Exception in thread "main" java.rmi.UnmarshalException: Error deserializing return-value: java.io.InvalidClassException: com.oracle.bpel.client.BPELProcessHandle; local class incompatible: stream classdesc serialVersionUID = 5429682712928177644, local class serialVersionUID = 8176841433835717563
at com.oracle.bpel.client.util.ExceptionUtils.handleServerException(ExceptionUtils.java:82)
at com.oracle.bpel.client.Locator.listProcesses(Locator.java:309)
Thanks for help.
Edited by: 857737 on 14 sept. 2012 10:00 -
Java Index Out Of Bounds Exception error
In the Query Designer when I choose access type for Result value as Master data, and execute, I get the following java Index Out Of Bounds Exception error:
com.sap.ip.bi.webapplications.runtime.controller.MessageException: Error while generating HTML
at com.sap.ip.bi.webapplications.runtime.impl.Page.processRequest(Page.java:2371)
at com.sap.ip.bi.webapplications.runtime.impl.Page.doServerRedirect(Page.java:2642)
at com.sap.ip.bi.webapplications.runtime.impl.Page.doProcessRequest(Page.java:2818)
at com.sap.ip.bi.webapplications.runtime.impl.Page.processRequest(Page.java:2293)
at com.sap.ip.bi.webapplications.runtime.controller.impl.Controller.doProcessRequest(Controller.java:841)
at com.sap.ip.bi.webapplications.runtime.controller.impl.Controller.processRequest(Controller.java:775)
at com.sap.ip.bi.webapplications.runtime.jsp.portal.services.BIRuntimeService.handleRequest(BIRuntimeService.java:412)
at com.sap.ip.bi.webapplications.runtime.jsp.portal.components.LauncherComponent.doContent(LauncherComponent.java:21)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
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:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: com.sap.ip.bi.base.exception.BIBaseRuntimeException: Error while generating HTML
at com.sap.ip.bi.webapplications.ui.items.UiItem.render(UiItem.java:380)
at com.sap.ip.bi.webapplications.runtime.rendering.impl.ContainerNode.render(ContainerNode.java:62)
at com.sap.ip.bi.webapplications.runtime.rendering.impl.PageAssemblerRenderingRoot.processRendering(PageAssemblerRenderingRoot.java:50)
at com.sap.ip.bi.webapplications.runtime.impl.Page.processRenderingRootNode(Page.java:3188)
at com.sap.ip.bi.webapplications.runtime.impl.Page.processRendering(Page.java:2923)
at com.sap.ip.bi.webapplications.runtime.impl.Page.doProcessRequest(Page.java:2877)
at com.sap.ip.bi.webapplications.runtime.impl.Page.processRequest(Page.java:2293)
... 39 more
Caused by: java.lang.IndexOutOfBoundsException: fromIndex = -7
at java.util.SubList.<init>(AbstractList.java:702)
at java.util.RandomAccessSubList.<init>(AbstractList.java:860)
at java.util.AbstractList.subList(AbstractList.java:569)
at com.sap.ip.bi.bics.dataaccess.base.impl.ModifiableList.remove(ModifiableList.java:630)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsDataCells.removeRows(RsDataCells.java:480)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.removeTuples(RsAxis.java:550)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1312)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1326)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1326)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1326)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1272)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.RsAxis.applyResultVisibility(RsAxis.java:1170)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.ResultSet.applyPostProcessing(ResultSet.java:282)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.resultset.ResultSet.refreshData(ResultSet.java:262)
at com.sap.ip.bi.bics.dataaccess.consumer.impl.queryview.QueryView.getResultSet(QueryView.java:267)
at com.sap.ip.bi.webapplications.ui.items.analysis.control.AcPivotTableInteractive.checkResultSetState(AcPivotTableInteractive.java:368)
at com.sap.ip.bi.webapplications.ui.items.analysis.control.AcPivotTableExport.validateDataset(AcPivotTableExport.java:249)
at com.sap.ip.bi.webapplications.ui.items.analysis.control.AcPivotTableInteractive.buildUrTree(AcPivotTableInteractive.java:282)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:33)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.advancedcontrols.bridge.AcItemBridge.iterateOverChildren(AcItemBridge.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.FlowLayoutItem.iterateOverChildren(FlowLayoutItem.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.FlowLayout.iterateOverChildren(FlowLayout.java:69)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.advancedcontrols.bridge.AcItemBridge.iterateOverChildren(AcItemBridge.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.MatrixLayoutCell.iterateOverChildren(MatrixLayoutCell.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.MatrixLayoutRow.iterateOverChildren(MatrixLayoutRow.java:56)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.MatrixLayout.iterateOverChildren(MatrixLayout.java:69)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.container.matrixlayout.control.AcMatrixControlGrid.iterateOverChildren(AcMatrixControlGrid.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.advancedcontrols.bridge.AcItemBridge.iterateOverChildren(AcItemBridge.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.Group.iterateOverChildren(Group.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.container.group.control.AcGroupControl.iterateOverChildren(AcGroupControl.java:259)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.advancedcontrols.bridge.AcItemBridge.iterateOverChildren(AcItemBridge.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.FlowLayoutItem.iterateOverChildren(FlowLayoutItem.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.FlowLayout.iterateOverChildren(FlowLayout.java:69)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.advancedcontrols.bridge.AcItemBridge.iterateOverChildren(AcItemBridge.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.unifiedrendering.controls.Group.iterateOverChildren(Group.java:63)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.container.group.control.AcGroupControl.iterateOverChildren(AcGroupControl.java:259)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.composites.UiRootContainer.iterateOverChildren(UiRootContainer.java:40)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.process(CompositeBuildUrTreeTrigger.java:36)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.CompositeBuildUrTreeTrigger.start(CompositeBuildUrTreeTrigger.java:59)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.ExtendedRenderManager.triggerComposites(ExtendedRenderManager.java:69)
at com.sap.ip.bi.webapplications.ui.framework.base.impl.BICompositeManager.renderRoot(BICompositeManager.java:79)
at com.sap.ip.bi.webapplications.ui.items.UiItem.render(UiItem.java:376)
Any help in solving this error is highly appreciated. Points will be given
Best Regards,
Vidyut K SamantaHi.
Go to line 9 of your code.
You are trying to use an array there.
Suppose you have an array x[4] - this array has 4 elements indexed 0..3.
you are trying to access an element with an index higher than 3.
Nimo. -
Resource-Exception while mapping
Hi,
I'm getting an error "com.sap.aii.utilxi.misc.api.ResourceException: Connection is invalid" ...
<Trace level="3" type="T">Creating Java mapping com/sap/vv2/xi/mapping/OutboundMapping.</Trace>
<Trace level="1" type="T">Connection is invalid.</Trace>
<Trace level="1" type="T">com.sap.aii.utilxi.misc.api.ResourceException: Connection is invalid. at com.sap.aii.utilxi.sql.api.ReusableStatement.get(ReusableStatement.java:74) at com.sap.aii.utilxi.sql.api.ReusableStatement.bind(ReusableStatement.java:183) at com.sap.aii.utilxi.sql.api.AbstractStatement.bind(AbstractStatement.java:152) at
and inside the SOAP-Header/ERROR the message is
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Mapping der Request-Message
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="MAPPING">RESOURCE_EXCEPTION</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>Fehler beim Datenbankzugriff.</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
(translation: <SAP:Stack>Error data base access </SAP:Stack> )
Is it a database problem (e.g. tablespace full,...) or where can I check the reason?
Thx
Regards
Wolfgang HummelHello,
I think its related to memory problem, check the below thread.
Resource Exception - Message mapping
Best regards,
raj.
Maybe you are looking for
-
Pages 5.0 does not appear to offer the possibility of selecting a language. This really is a shortcoming when you have pre- and post-reform versions of a language, as in German. Am I missing something? in Pages 4.3. you would make a slection via the
-
When I change a clip name it changes all clip names
In Event Browser or Inspector when I try and name a clip, or enter notes, the change I make appears in all clips as if all are linked. Thanks, Nick
-
Printouts are faint in Mountain Lion
I recently upgraded from 10.6.8 to 10.8.3. Even with new drivers from the Canon website, my PIXMA MP490 printouts are faint. Printouts are perfect if I reboot from 10.6.8 backup drive. How to control print quality in 10.8.3? Am I missing a settin
-
Odi Agent cannot connect work repsotiroy
Hi everyone, I upgraded odi ,I configured odiparams.sh .When start agent ,it works successfuly. But When I execute procedure,or interface etc ,on odi it says session started. But when ı look at to agent running screen command promt ERROR ODI-1224 Dat
-
hi all, how to use jfilechooser to select a file available in another computer of my LAN. i used setFileSelectionMode(JFileChooser.FILES_ONLY);with this statement, if i give 'c:' or any local/mapped drive names in text box, it lists the files properl