Re: Serialization from Orion back to Client via Session EJB
I've had some problems with client 1.4 and server 1.3.1. Can't remember wich errors, but I think you have to use the same jdk on client and server. - Original Message - From: Jeff Lowcock [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Sent: Sunday, April 14, 2002 12:06 PM Subject: Serialization from Orion back to Client via Session EJB I have a number of code tables in the database, that will only ever be read only. Rather than creating the infrastructure of an Entity EJB for these tables I would like to simply call a session bean to return read only versions of these codes. A typical class has the form public class CodeClass implements Serializable { private long code; private String name; public long getCode() { return code;} public String getName() { return name;} } I've created a Session EJB that accesses the database using JDBC to return the entries to the bean. This bean uses these entries to construct instances of CodeClass and inserts them into a Vector. This vector is then returned as the result of the method call on the Session EJB. The client receives an error from the server indicating that the CodeClass indicating the class could not be (de-)serialized. The Client is 1.4.0, orion is 1.3.1 (Oracle extended version), I've tested to ensure that this simple CodeClass can be read/written between 1.3.1 and 1.4.0 and there appears to be no problem there. I'm a little stumped at this point, as the code seems to be very simple, compiles and doesn't run. Is it the fact that I'm returning a Vector? Or am I missing a step, or
Re: Orion using Interbase / VerifyError
Hi, I had the same error, but I've downloaded interclient 1.5.1 and then interclient throws a usable error message explaining what really went wrong. Greetings Wim Veninga. - Original Message - From: "Randahl Fink Isaksen" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Tuesday, April 03, 2001 8:38 AM Subject: RE: Orion using Interbase / VerifyError Thanks. I am using JDK1.3 and I noticed that the interclient was developed for 1.2. Might I ask which version of Java you are using? If we are both using 1.3 then that might be the reason. Yours Randahl -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Kiss Tibor Sent: 2. april 2001 17:38 To: Orion-Interest Subject: RE: Orion using Interbase / VerifyError Are you using Interclient2? I had the same problem. The workaround was to download the source code for IC2 and build it for myself. (It requires some modification, as it will not compile in its current form.) AFAIK, not a single line of code has been added between August and January. -Original Message- From: Randahl Fink Isaksen [mailto:[EMAIL PROTECTED]] Sent: Monday, April 02, 2001 3:11 PM To: Orion-Interest Subject: Orion using Interbase / VerifyError I am trying to make Orion work with Interbase. When deploying my solution I get the error shown below. I have tested my application on Hypersoniq, and I have tested my Interbase setup, plus I am able to connect to the datasource's URL using Interbases built in test tool. Still I get the java.lang.VerifyError. I have noticed that this error is thrown under many different circumstances - if you deliberately use a wrong password or an invalid database URL in "InterClient Communication Diagnostics", Interbase will simply throws this error aswell, and tell you that there might be a configuration problem (which is not the case). Any suggestions would be highly appreciated. Randahl Auto-deploying ro-ejb.jar (No previous deployment found)... Auto-creating table: create table ArchiveEJB (primaryKey INTEGER NOT NULL PRIMAR Y KEY, alias VARCHAR(255) NULL, classRestrictionName VARCHAR(255) NULL) java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: _$372 sig nature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack at interbase.interclient.SQLException.init(SQLException.java:96) at interbase.interclient.RecvMessage.createSQLException(RecvMessage.java :694) at interbase.interclient.RecvMessage.makeSQLException(RecvMessage.java:5 93) at interbase.interclient.RecvMessage.get_EXCEPTIONS(RecvMessage.java:554 ) at interbase.interclient.Statement._$121578(Statement.java:282) at interbase.interclient.Statement.executeUpdate(Statement.java:261) at com.evermind.sql.am.executeUpdate(JAX) at com.evermind.sql.am.executeUpdate(JAX) at com.evermind.server.ejb.compilation.ga.ahq(JAX) at com.evermind.server.ejb.compilation.f4.ahq(JAX) at com.evermind.server.ejb.compilation.f4.s_(JAX) at com.evermind.server.ejb.compilation.ga.s_(JAX) at com.evermind.server.ejb.EJBContainer.bz(JAX) at com.evermind.server.Application.bz(JAX) at com.evermind.server.Application.gf(JAX) at com.evermind.server.ApplicationServer.rv(JAX) at com.evermind.server.ApplicationServer.aqb(JAX) at com.evermind.server.ApplicationServer.gf(JAX) at com.evermind.server.hg.run(JAX) at java.lang.Thread.run(Thread.java:484) at com.evermind.util.f.run(JAX)
Re: No influence on CMP 2.0 getter setter methods - a feature or a bug?
Hi Randahl, Why don't you just leave the method setBalance(float b) out of the remote interface and put public void setBalanceAndDoWhatHasToBeDoneWhenYouSetBalance(Float balance) in the remote interface. So no other objects can call setBalance but only setBalanceAndDoWhatHasToBeDoneWhenYouSetBalance(Float balance). Greetings Wim Veninga. - Original Message - From: "Randahl Fink Isaksen" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Cc: "Jens Peter Grosen" [EMAIL PROTECTED]; "Simon Anker Christiansen" [EMAIL PROTECTED]; "Kim Jrgensen" [EMAIL PROTECTED] Sent: Wednesday, February 21, 2001 5:46 PM Subject: No influence on CMP 2.0 getter setter methods - a feature or a bug? I have been reading the CMP 2.0 specification and I think it is simply great! Still, I am a bit surprised that the bean developer has no control over what happens when a field is set. Imagine an AccountBean, for instance: public abstract class AccountBean extends EntityBean { //implemented by the persistence manager public abstract Float getBalance(); //implemented by the persistence manager public abstract void setBalance(Float balance); } What if I wanted to do something useful when the balance was set? Say, I wanted to add the account to a list of surveilled accounts if a negative balance was set... it seems I cannot do that because the container implements the setBalance() method for me. And I cannot just declare a setBalance() method myself because I need the container's implementation or I will not be able to store the balance. H... it seems this is going to leave me with something like public abstract class AccountBean extends EntityBean { public abstract Float getBalance(); public abstract void setBalance(Float balance); public void setBalanceAndDoWhatHasToBeDoneWhenYouSetBalance(Float balance) { //check if balance is negative and take action ... setBalance(balance); } } Now I have _no_ guarantee that nobody will accidently call the original setBalance() method, thereby circumventing my little security system, which was supposed to check for a negative balance. But, hey, I thought, then I will just declare the original setBalance() as protected - unfortunately that is not allowed by the specification. I would r e a l l y like to hear from anybody who knows a solution to this. Any comments would be most welcomed. Randahl
Re: OR mapping with Oracle
You can use complex OR mapping with orion, for instance if you have an compound PK object you can map all its fields to different columns in the database table See orionsupport - complex or mapping http://www.orionsupport.com/articles/complex-or.html - Original Message - From: "Hegyi Tibor" [EMAIL PROTECTED] To: "Orion-Interest" [EMAIL PROTECTED] Sent: Monday, December 04, 2000 7:46 AM Subject: RE: OR mapping with Oracle Thanks for your reply. My PK class implements the Serializable interface (see code snippet in my first mail) but this does not help since Orion maps Serializable objects to blob datatypes in relation with Oracle data source and blobs cannot be indexed. Integer object works fine but how can I implement compound primary keys then? Tibor -Original Message- From: J Davis [mailto:[EMAIL PROTECTED]] Sent: Friday, December 01, 2000 9:38 PM To: Orion-Interest Subject: RE: OR mapping with Oracle I beleive primary keys must be Serializalble. Try using an Integer object instead. Later Greg
Re: Jetspeed
Hi Jeroen, I have no problems using Interbase for both BMP and CMP. I can sent you the database-schema for interbase if you want. Greetings Wim Veninga [EMAIL PROTECTED] "J.T. Wenting" wrote: Has anyone got Jetspeed 1.2 to run on Orion? I keep getting errors instantiating caches (or so it seems). Hints appreciated. For the moment I am using Oracle 8i as a database (would like to use Interbase, but that is not supported, getting errors if I try). Jeroen T. Wenting [EMAIL PROTECTED] Murphy was wrong, things that can't go wrong will anyway
Re: How does one change the database that the EJB is connecting to during runtime ?
Hi Christian, Are you going to use Bean Managed Persistence or Container Managed Persistence. If you are going to use Bean Managed Persistence you can load a datasource to DB_CompanyA when company A user logs in and when a user of company b logs in you can load a datasource to DB_CompanyB. When you are going to use Container Managed Persistence I don't know if you can do this other that create different beans for the different company's. Hope this will help. Greetings Wim Veninga. Christian Kvalheim wrote: Hey.. I'm in the middle of developing the next version of our software platform for quality management and I have run into the following problem. The current development platform is ASP/COM but we are moving to J2EE and orionserver as our platform of choice. This is the problem When a user connects to the application, he chooses the company that he belongs to. This sets the context of the program to point to the database of that company and all operations are performed on that database. This if Company A has the database 'COMPANYA' and Company B has the database 'COMPANYB' users belonging to company A will be using the data in COMPANYA when performing EJB transactions, While Users in Company B will use COMPANYB when performing EJB transactions. Now the problem lies in my tellin the EJB to use database COMPANYB when a user from company B logs on and COMPANYA whem a user from company A logs on. Of course we are talking about hundreds and hopefully thousands of databases over time, so the context must be possible to switch easily. Can I do this someway with EJB, without resulting to the situation of modifying SQL sentences. Christian Kvalheim Qm plus __ Do You Yahoo!? Yahoo! Messenger - Talk while you surf! It's FREE. http://im.yahoo.com/
Re: EJB classpath problem
Hi Laurent Where is your rapids-util.jar file located. I would suggest that you put this in your_orion_dir/lib. I had the same kind of situation with cloudscape (database) and orion. I have a couple of objects that need to be stored in cloudscape but cloudscape couldn't find it. But i had the classes in one of my ejb-jars. So when i put the classes in orion/lib everything worked fine. I think that orions class loader doesn't make the classes in ejb-jar available to the rest of the system. Greetings Wim Veninga. Laurent Cornelis wrote: Hello, I deploy a J2EE application (called rapids) with Orion, here is my directory structure after deployment : orion/applications/rapids -> Contains EJBs jar orion/applications/rapids/rapids-web -> Contains the Web app orion/applications/rapids/rapids-web/WEB-INF/lib/rapids-util.jar -> A jar file my web application and my EJB need Somewhere in my web applications, a call to WebFacade (One of my EJBs) is done. In this call WebFacade must use a class from rapids-util.jar (class ubiquity.rapids.ejb.util.HomeFactory) but here is the exception I catch : snip> com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: java.lang.NoClassDefFoundError: ubiquity/rapids/ejb/util/HomeFactory at WebFacade_StatelessSessionBeanWrapper9.getPublicSatellites(WebFacade_StatelessSessionBeanWrapper9.java:311) at /pri/choosesatellite.jsp._jspService(/pri/choosesatellite.jsp.java:75)(JSP page line 28) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.w5(JAX) at com.evermind.server.http.JSPServlet.service(JAX) at com.evermind.server.http.d1.si(JAX) at com.evermind.server.http.d1.forward(JAX) at ubiquity.rapids.servlet.RapidsServlet.doPost(RapidsServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at com.evermind.server.http.d1.si(JAX) at com.evermind.server.http.d1.forward(JAX) at com.evermind.server.http.ed.sp(JAX) at com.evermind.server.http.ed.so(JAX) at com.evermind.util.f.run(JAX) Nested exception is: java.lang.NoClassDefFoundError: ubiquity/rapids/ejb/util/HomeFactory at ubiquity.rapids.ejb.webfacade.WebFacadeBean.getPublicSatellites(WebFacadeBean.java:153) at WebFacade_StatelessSessionBeanWrapper9.getPublicSatellites(WebFacade_StatelessSessionBeanWrapper9.java:281) at /pri/choosesatellite.jsp._jspService(/pri/choosesatellite.jsp.java:75)(JSP page line 28) at com.orionserver.http.OrionHttpJspPage.service(JAX) at com.evermind.server.http.HttpApplication.w5(JAX) at com.evermind.server.http.JSPServlet.service(JAX) at com.evermind.server.http.d1.si(JAX) at com.evermind.server.http.d1.forward(JAX) at ubiquity.rapids.servlet.RapidsServlet.doPost(RapidsServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java) at com.evermind.server.http.d1.si(JAX) at com.evermind.server.http.d1.forward(JAX) at com.evermind.server.http.ed.sp(JAX) at com.evermind.server.http.ed.so(JAX) at com.evermind.util.f.run(JAX) /snip> How can I tell to the EJBs where is rapids-util.jar ? Please help !!! Thanks Laurent
Re: HARDWARE FOR J2EE apps
Hi Kevin, Do you create the database in IBConsole ? Because the ibconsole has an bug when creating databases. If so, you probably have to get the newer version of IBConsole : URL : http://www.interbase.com/open/downloads/ib_download.html goto the miscellaneous section (at the bottumn of the page) and download IBConsole - build 308. You must overwrite the ibconsole in your interbase install directory. If you want the interbase-database-schema.xml (for orion cmp managed persistence) mail me and i will sent it to you. Further more i think interbase 6 is an very good database but I would like to know if it handle a large amount of connections at the same time (like 500 or something). There isn't much info about that in the docs. Greetings Wim Veninga. "Duffey, Kevin" wrote: Hey Scott, Interbase 6 is pretty nice in my opinion. Its SQL 92 compliant (if that means anything), its completely free and is now open-source, has a type IV jdbc driver, and it has a VERY small foot-print. It runs on most platforms I believe, and thus far its pretty darn fast. However, I have not been able to successfully create a database in it. I keep getting some stupid error when I try to create a database and I can't find any information on it. I'll have to post to the Interbase site probably..or maybe there is a newer version. I wish there was some more detailed info on how to completely set up Interbase. I can however connect via my java app and get connections out. I just can't seem to create tables and what not. Anyways..I worked with Interbase 4 and it was pretty fast, so I am sure 6 is better in many ways (that is not always true..but I hope it is). -Original Message- From: Scott Stirling [mailto:[EMAIL PROTECTED]] Sent: Wednesday, October 11, 2000 3:25 PM To: Orion-Interest Subject: RE: HARDWARE FOR J2EE apps Why would you use mySQL over Postgresl? They're both free, but Postgresql has a JDBC driver that's XA-compliant. Also, mySQL is known to blow away your whole database if it has a bad crash, whereas Postgresql is better at persisting data through a bad crash. How does Interbase 6 compare to Postgresql? Is it free? Scott Stirling West Newton, MA -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Duffey, Kevin Sent: Wednesday, October 11, 2000 4:01 PM To: Orion-Interest Subject: RE: HARDWARE FOR J2EE apps Hi, sounds very nice but what about the database? how do you cluster that without spending an arm and a leg? our experience is, that it's not that hard to set up clustered web services with static pages and servlets but the really expensive part is, when you want that high availability for your database. it doesn't buy you much if you have highly available ejbs when the database server goes down. many people use clustered apache/jserv on linux and cheap pc-hardware for high volume transactional websites but have a large enterprise sun running oracle in the back. anyone out there running a configuration with orion that includes a database with failover that doesn't blow up the budget too much (compared to other components)? Well, to start off with there is mySQL and the one I like the most is Interbase 6..a free powerful RDBMS. However, as far as clustering them..I don't quite know the best way. I would think a load-balancer or a switch or something, would be required. Nobody ever said it was cheap! ;) I used to think $25,000 could easily set up a website from front to back, software, hardware, etc..but not even close these days. If you are just starting out, I would use Orion for front-end and ejb-logic tiers in a clustered environment (for developing/testing), with a single server running mySQL or Interbase for the database. Once you get some funding and move beyond the concept phase, you should put a sizeable chunk to invest in co-locating your site and doing the full load-balancing setup. I would estimate a cheap setup with 2 front-end web/servlet servers failed over, 2 ejb servers, and a database cluster will still run around $100,000, to co-lo it..which is probably the best thing to do to make sure its up 24/7.
Re: hi all
Hi myth, Answer on Q1 : The variable out is an static variable, this means that for all instances of System there is only one out variable (all instances of System have a pointer to the same adress in memory on wich out is stored). You can thus call System.out.println() and it will print a message to the screen. Answer to Q2 : When you call getAppletContext you will get an implementation of the AppletContext wich is an actual object. For example if you have a List of Person objects but the persons can be Students, Teachers and SupportingEmpoyees you can create an interface Person wich defines all the methods a person should have. And then let Student, Teacher and SupportingEmployee implement this interface and give each class a different implementation of the methods listed in Person. You can then add different objects(Teachers,Students and SupportingEmployees) to the PersonList class and operate on them with the methods defined in Person. I think you should read the trial Learning the Java Language in the Java Tutorial wich explains the concepts about java. Further more Thinking in Java is a very good book to learn to program in Java (and better it's free available online somewhere) Greetings Wim Veninga myth wrote: hi I am new to Java(about 6 months in it). i have few doubts and think you masters can help me. Question 1. The doubt is about System.out.println() System is a class and out is a variable in System class. println(),print() are in PrintStream class. a.how can you call println in System class. b.System.out.println() is like this, ClassName.variable.methodname(),how can you call like this. Question 2. AppletContext is an interface.you cannot create objects of interface. but when you call getAppletContext() method you get an object of the interface.How is this possible. In RMI also i saw a method which will give an object for an interface. how is it possible. please find time to clear my doubts(i did study thoery in more than one book and didnot understand). regards Srivatsan. __ Do You Yahoo!? Get Yahoo! Mail - Free email you can access from anywhere! http://mail.yahoo.com/
Re: EJBException.printStackTrace()
Hi Jeff, This is because the stack trace is transient. So it is not send over the network (even in local rmi calls). For example if you have a session that call's an entity, and you catch an entity exception in the session, the stack trace doesn't hold state. I recall an article in javaworld (www.javaworld.com) from serverall months ago explaining how to make exceptions that do provide serializable stack trace. Greetings Wim Veninga. Jeff Schnitzer wrote: I've noticed that the printStackTrace() method on EJBException doesn't print the trace for the nested exception. This makes debugging exceptions thrown deep within several layers of EJB's calling EJB's difficult. Is this something I should ask the Orion team to fix? Or is it something that Sun needs to take care of? For the moment I suppose I can rip the class file out of ejb.jar and add my own EJBException. Jeff Schnitzer [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
Re: Trouble with Rmi-Cloudscape from Orion
Hi Ishpal, Have you defined a datasource in datasources.xml that looks something like this? data-source class="com.evermind.sql.DriverManagerDataSource" name="Cloudscape" location="jdbc/CloudscapeCoreDS" xa-location="jdbc/xa/CloudscapeDS" ejb-location="jdbc/CloudscapeDS" connection-driver="RmiJdbc.RJDriver" username="" password="" url="jdbc:rmi://ishpal2:5/jdbc:cloudscape:HelloWorldDB;create=true;autocommit=false" inactivity-timeout="30" schema="database-schemas/cloudscape.xml" / Ishpal wrote: Hi, I'm having trouble connecting to cloudscape database from orion. Using the same driver, host and the port I can connect to the Cloudscape using RmiJdbcDriver from an application running in a different JVM, but when I try the same from orion I get an error like Auto-deploying hello-ejb... SQL error: The database driver (COM.cloudscape.core.RmiJdbcDriver@bb1928df) returned refused to connect to the URL jdbc:cloudscape:rmi://ishpal2:5/HelloWorldDB;create=true Warning: Error creating table: The database driver (COM.cloudscape.core.RmiJdbcDriver@bb1928df) returned refused to connect to the URL jdbc:cloudscape:rmi://ishpal2:5/HelloWorldDB;create=true Its driving me nuts... Is there some kind of setting to be done in some xml file in orion...??? I have to get this thing up or I might be forced to try with other products... please help Ishpal.
Re: Help: Mapping roles to users.
Hi Dave, Have you posted a bug report to the orion bug list, or isn't it a bug? Have you found a workaround for your security needs, I'm thinking to write something myself but if you have already done this could you give some insight on how to do this ? Thanks in advance, Greetings Wim Veninga Dave Smith wrote: This has been a long running problem that I never received an answer to, despite much discussion on this list. wim veninga wrote: Hi all, I have created an set of Enterprise beans and in the assembly descriptor I have defined a set of roles that have some permissions to run methods ( in ejb-jar.xml). When I deploy the application and the modify orion-ejb-jar.xml to map the roles to different groups in the assembly descriptor and than re-start or re-deploy the application (using orionconsole.jar) orion overwrites the changes I've made in orion-ejb-jar.xml (see below for the deployment descriptors ejb-jar.xml, orion-ejb-jar.xml and orion-ejb-jar.xml after re-starting/re-deploying). Has anybody done this in orion (with ejb 2.0 on orion 1.2.0) ? If so can you sent me the deployment descriptors ? Have I made an error ? (The groups are defined in principals.xml and the role-mappings aren't being overwritten in orion-application.xml). Does the default-method-acces tag in orion-ejb-jar.xml means that all the methods that aren't tied to a method permission in ejb-jar.xml can be called by the group/user and that all the methods that are can't be called ? Thanks in advance, Greetings Wim Veninga In ejb-jar.xml: ?xml version="1.0"?> !DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> !-- KOZIJNCALC BEANS --> ejb-jar> description>The deployment descriptor for the com.fnv.kozijncalc beans/description> enterprise-beans> entity> description>/description> ejb-name>Klant/ejb-name> home>com.fnv.kozijncalc.entities.klanten.KlantHome/home> remote>com.fnv.kozijncalc.entities.klanten.Klant/remote> ejb-class>com.fnv.kozijncalc.entities.klanten.KlantEJB/ejb-class> persistence-type>Container/persistence-type> prim-key-class>java.lang.Integer/prim-key-class> reentrant>False/reentrant> cmp-field>field-name>klantNr/field-name>/cmp-field> cmp-field>field-name>klantNaam/field-name>/cmp-field> cmp-field>field-name>klantAdres/field-name>/cmp-field> cmp-field>field-name>klantPostcode/field-name>/cmp-field> cmp-field>field-name>klantPlaats/field-name>/cmp-field> cmp-field>field-name>klantLand/field-name>/cmp-field> cmp-field>field-name>klantTelefoon/field-name>/cmp-field> cmp-field>field-name>klantContactPersoon/field-name>/cmp-field> primkey-field>klantNr/primkey-field> /entity> session> ejb-name>KlantSession/ejb-name> home>com.fnv.kozijncalc.sessions.klanten.KlantSessionHome/home> remote>com.fnv.kozijncalc.sessions.klanten.KlantSession/remote> ejb-class>com.fnv.kozijncalc.sessions.klanten.KlantSessionBean/ejb-class> session-type>Stateless/session-type> transaction-type>Container/transaction-type> ejb-ref> ejb-ref-name>kozijn/ejb/KlantHome/ejb-ref-name> ejb-ref-type>Entity/ejb-ref-type> home>com.fnv.kozijncalc.entities.klanten.KlantHome/home> remote>com.fnv.kozijncalc.entities.klanten.Klant/remote> ejb-link>Klant/ejb-link> /ejb-ref> /session> /enterprise-beans> assembly-descriptor> !-- Security roles --> security-role> role-name>calculator/role-name> /security-role> security-role> role-name>hoofd_calculator/role-name> /security-role> security-role> role-name>werkvoorbereiding/role-name> /security-role> !-- The method permissions that the different roles have to call methods --> !-- The method permissions for the werkvoorbereiding role, currently not any methods--> method-permission> role-name>werkvoorbereiding/role-name> /method-permission> !-- The calculator method permissions --> method-permission> description>The permissions of the calculator role/description> role-name>calculator/role-name> method> description>The permissions for the klant entity bean remote/description> ejb-name>Klant/ejb-name> method-intf>Remote/method-intf> method-name>*/method-name> /method> method> description>A permission for the klant entity bean home/description> ejb-name>Klant/ejb-name> method-intf>Home/method-intf> method-name>findAll/method-name> /method> method> description>A permission for the klant entity bean home/description> ejb-name>Klant/ejb-name> method-intf>Home/method-intf> method-name>findByKlantNaam/method-name> method-params> method-
Re: Trouble with Rmi-Cloudscape from Orion
Hi Ishpal, Does cloudscape has rmijdbc in cloudscape.jar ? I always use rmijdbc.jar and cloudscape.jar to gether and also the url is different. What version of cloudscape do you use ? Thanks in advance, Greetings Wim Veninga Ishpal wrote: Thanks a lot Wim, you got the problem by the hook.. I was using the wrong driver. My application connects to the database with the following code... Class.forName("COM.cloudscape.core.RmiJdbcDriver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:cloudscape:rmi://ishpal2:5/HelloWorldDB;autocommit=false"); And (now) my datasource in datatsources.xml is as... data-source name="DefaultDS" class="com.evermind.sql.ConnectionDataSource" location="jdbc/DefaultDS" pooled-location="jdbc/DefaultPooledDS" xa-location="jdbc/xa/DefaultXADS" ejb-location="jdbc/DefaultEJBDS" url="jdbc:rmi://localhost:5/jdbc:cloudscape:HelloWorldDB;autocommit=false" connection-driver="RmiJdbc.RJDriver" inactivity-timeout="20" username="" password="" schema="database-schemas/cloudscape.xml" /> The drivers to connect to the database are different , but now I can connect to the database. Thanks (once again). -Ishpal. wim veninga wrote: > > Hi Ishpal, > > Have you defined a datasource in datasources.xml that looks something like > this? > > data-source > class="com.evermind.sql.DriverManagerDataSource" > name="Cloudscape" > location="jdbc/CloudscapeCoreDS" > xa-location="jdbc/xa/CloudscapeDS" > ejb-location="jdbc/CloudscapeDS" > connection-driver="RmiJdbc.RJDriver" > username="" > password="" > url="jdbc:rmi://ishpal2:5/jdbc:cloudscape:HelloWorldDB;create=true;autocommit=false" > > inactivity-timeout="30" > schema="database-schemas/cloudscape.xml" > /> > > Ishpal wrote: > > > Hi, > > > > I'm having trouble connecting to cloudscape database from orion. > > > > Using the same driver, host and the port I can connect to the Cloudscape > > using RmiJdbcDriver from an application running in a different JVM, but > > when I try the same from orion I get an error like > > > > Auto-deploying hello-ejb... SQL error: The database driver > > (COM.cloudscape.core.RmiJdbcDriver@bb1928df) returned refused to connect > > to the URL jdbc:cloudscape:rmi://ishpal2:5/HelloWorldDB;create=true > > Warning: Error creating table: The database driver > > (COM.cloudscape.core.RmiJdbcDriver@bb1928df) returned refused to connect > > to the URL jdbc:cloudscape:rmi://ishpal2:5/HelloWorldDB;create=true > > > > Its driving me nuts... > > > > Is there some kind of setting to be done in some xml file in orion...??? > > I have to get this thing up or I might be forced to try with other > > products... > > > > please help > > Ishpal.
Help: Mapping roles to users.
Hi all, I have created an set of Enterprise beans and in the assembly descriptor I have defined a set of roles that have some permissions to run methods ( in ejb-jar.xml). When I deploy the application and the modify orion-ejb-jar.xml to map the roles to different groups in the assembly descriptor and than re-start or re-deploy the application (using orionconsole.jar) orion overwrites the changes I've made in orion-ejb-jar.xml (see below for the deployment descriptors ejb-jar.xml, orion-ejb-jar.xml and orion-ejb-jar.xml after re-starting/re-deploying). Has anybody done this in orion (with ejb 2.0 on orion 1.2.0) ? If so can you sent me the deployment descriptors ? Have I made an error ? (The groups are defined in principals.xml and the role-mappings aren't being overwritten in orion-application.xml). Does the default-method-acces tag in orion-ejb-jar.xml means that all the methods that aren't tied to a method permission in ejb-jar.xml can be called by the group/user and that all the methods that are can't be called ? Thanks in advance, Greetings Wim Veninga In ejb-jar.xml: ?xml version="1.0"?> !DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> !-- KOZIJNCALC BEANS --> ejb-jar> description>The deployment descriptor for the com.fnv.kozijncalc beans/description> enterprise-beans> entity> description>/description> ejb-name>Klant/ejb-name> home>com.fnv.kozijncalc.entities.klanten.KlantHome/home> remote>com.fnv.kozijncalc.entities.klanten.Klant/remote> ejb-class>com.fnv.kozijncalc.entities.klanten.KlantEJB/ejb-class> persistence-type>Container/persistence-type> prim-key-class>java.lang.Integer/prim-key-class> reentrant>False/reentrant> cmp-field>field-name>klantNr/field-name>/cmp-field> cmp-field>field-name>klantNaam/field-name>/cmp-field> cmp-field>field-name>klantAdres/field-name>/cmp-field> cmp-field>field-name>klantPostcode/field-name>/cmp-field> cmp-field>field-name>klantPlaats/field-name>/cmp-field> cmp-field>field-name>klantLand/field-name>/cmp-field> cmp-field>field-name>klantTelefoon/field-name>/cmp-field> cmp-field>field-name>klantContactPersoon/field-name>/cmp-field> primkey-field>klantNr/primkey-field> /entity> session> ejb-name>KlantSession/ejb-name> home>com.fnv.kozijncalc.sessions.klanten.KlantSessionHome/home> remote>com.fnv.kozijncalc.sessions.klanten.KlantSession/remote> ejb-class>com.fnv.kozijncalc.sessions.klanten.KlantSessionBean/ejb-class> session-type>Stateless/session-type> transaction-type>Container/transaction-type> ejb-ref> ejb-ref-name>kozijn/ejb/KlantHome/ejb-ref-name> ejb-ref-type>Entity/ejb-ref-type> home>com.fnv.kozijncalc.entities.klanten.KlantHome/home> remote>com.fnv.kozijncalc.entities.klanten.Klant/remote> ejb-link>Klant/ejb-link> /ejb-ref> /session> /enterprise-beans> assembly-descriptor> !-- Security roles --> security-role> role-name>calculator/role-name> /security-role> security-role> role-name>hoofd_calculator/role-name> /security-role> security-role> role-name>werkvoorbereiding/role-name> /security-role> !-- The method permissions that the different roles have to call methods --> !-- The method permissions for the werkvoorbereiding role, currently not any methods--> method-permission> role-name>werkvoorbereiding/role-name> /method-permission> !-- The calculator method permissions --> method-permission> description>The permissions of the calculator role/description> role-name>calculator/role-name> method> description>The permissions for the klant entity bean remote/description> ejb-name>Klant/ejb-name> method-intf>Remote/method-intf> method-name>*/method-name> /method> method> description>A permission for the klant entity bean home/description> ejb-name>Klant/ejb-name> method-intf>Home/method-intf> method-name>findAll/method-name> /method> method> description>A permission for the klant entity bean home/description> ejb-name>Klant/ejb-name> method-intf>Home/method-intf> method-name>findByKlantNaam/method-name> method-params> method-param>java.lang.String/method-param> /method-params> /method> method> description>A permission for the klant entity bean home/description> ejb-name>Klant/ejb-name> method-intf>Home/method-intf> method-name>findByPrimaryKey/method-name> method-params> method-param>java.lang.Integer/method-param> /method-params> /method> method> description>The permissions for the klant s
Re: Orion and Cloudscape
Hi Ishpal, Thanks for the help. I'll try it out later (already have interbase working with orion and interbase is free(opensource since version 6), so the choice is obvious.) Workaround for your error: Use cloudscape with rmijdbc or cloudconnector so you have to start and shutdown the database server and not orion. Ishpal wrote: wim veninga wrote: JavierG wrote: Hi all: Can I make Orion and Clouscape run in the same VM? In that case, how? Wrapping Cloudscape in a servlet and running it within Orion? Any particular measure I should take in that case? All suggestions would be very welcome. Thanks J. Hi Javier, What do you mean with running cloudscape in the same VM. Are you just using cloudscape or do you have a framework (rmijdbc or cloud connector) that you want to run cloudscape in. If you just want to use cloudscape as an embedded db you can use it with orion and run it in the same VM as orion. You have to supply an datasource in datasources.xml and provide a schema for cloudscape and set the cloudscape.system.home property in orion.properties or at the command line when starting orion. Put the cloudscape.jar in the orion/lib directory and the client.jar in the client classpath (for exception etc..) What would be the purpose of wrapping cloudscape in an servlet ? Do you mean that you want to program the acces to the database yourself in the servet? Note I couldn't get cloudscape working with CMP, with BMP there were no problems but with cmp I get an strange error at the client side (object was null but still part of the cache). So if you get cloudscape working with CMP will you please let me know how you did it ? The xml files are supplied as an zip attachment. Hope this helps. Greetings Wim Veninga Name: cloudscapeXML.zip cloudscapeXML.zipType: Zip Compressed Data (application/x-zip-compressed) Encoding: base64 Hello, I can now get Cloudscape running with CMP. You can try the URL as ... url="jdbc:cloudscape:HelloWorldDB;autocommit=false" in the data-sources.xml file... It works pretty cool. The problem now is that when i try to shutdown the server using "admin.jar -shutdown" , the database instance is not shutdown... so next time I get a message like... WARNING: Cloudscape (instance c013800d-00e1-0894-8651-007f0100) is attempting to boot the database /home/ishpal/projects/Cloudscape/system_databases/HelloWorldDB even though cloudscape (instance c013800d-00e1-0880-1eb6-0 Which is scary and I dont want to end up destroying the database... Is there a way I can shutdown the database instance when the server is shutdown Thanks, Ishpal.
Re: Orion and Cloudscape
JavierG wrote: Hi all: Can I make Orion and Clouscape run in the same VM? In that case, how? Wrapping Cloudscape in a servlet and running it within Orion? Any particular measure I should take in that case? All suggestions would be very welcome. Thanks J. Hi Javier, What do you mean with running cloudscape in the same VM. Are you just using cloudscape or do you have a framework (rmijdbc or cloud connector) that you want to run cloudscape in. If you just want to use cloudscape as an embedded db you can use it with orion and run it in the same VM as orion. You have to supply an datasource in datasources.xml and provide a schema for cloudscape and set the cloudscape.system.home property in orion.properties or at the command line when starting orion. Put the cloudscape.jar in the orion/lib directory and the client.jar in the client classpath (for exception etc..) What would be the purpose of wrapping cloudscape in an servlet ? Do you mean that you want to program the acces to the database yourself in the servet? Note I couldn't get cloudscape working with CMP, with BMP there were no problems but with cmp I get an strange error at the client side (object was null but still part of the cache). So if you get cloudscape working with CMP will you please let me know how you did it ? The xml files are supplied as an zip attachment. Hope this helps. Greetings Wim Veninga cloudscapeXML.zip
Re: Orion and CMP
Hi Robert, In wich file do i put the autocreate-tables="off". Thanks, Wim Veninga. - Click here for Free Video!! http://www.gohip.com/free_video/ -Original Message- From: Robert Krueger [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Date: Wednesday, August 02, 2000 8:46 PM Subject: Re: Orion and CMP nothing stops you from writing the orion-ejb-jar.xml yourself. orion will not touch your settings when the file is parsed augmented and rewritten. from my experience it's better to let orion write the file (with autocreate-tables="off" so you don't get any junk in the db) and then change the table and column names and redeploy. it's much less work. what we do is generate the orion-ejb-jar.xml files with the code generation tool that also generates the ejb code and the db schema so it's no work at all. regards, robert At 15:39 02.08.00 , Ratz, Peter wrote: Hello, i am new to orion and i am writing my first cmp bean. My bean "Customer" has attributes like name, street ... . Within my database (Oracle) the table name is "cust" and the column names are nam, str ... . I know that i can specify a mapping in orion-ejb-jar.xml. But this file is generated during deploying my app. How can i specify the mapping during assembling my app? I would like to set the table name and the field name mapping before deploying my ear-file. Thanks Peter (-) Robert Krüger (-) SIGNAL 7 Gesellschaft für Informationstechnologie mbH (-) Brüder-Knauß-Str. 79 - 64285 Darmstadt, (-) Tel: 06151 665401, Fax: 06151 665373 (-) [EMAIL PROTECTED], www.signal7.de
Re: EJB CLIENT
Hi David, I suppose you have given your application (on the server side) a name in application.xml. For instance : application display-nameYour_Name/display-name module ... etc /application So then in your jndi.properties file it has to say java.naming.factory.initial=com.evermind.server.ApplicationClientInitialCont extFactory java.naming.provider.url=ormi://localhost/Your_Name {--- The name of your application} java.naming.security.principal=admin Hope this helps, Wim Veninga [EMAIL PROTECTED] -Original Message- From: David Sierra Fernandez [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Date: Friday, July 28, 2000 9:22 PM Subject: EJB CLIENT Hi all, I'm very worried 'cause i'm not able to make a EJB client to work. I've deployed my app without problems but I can't execute the client. I've created the client-application.xml: ?xml version="1.0"? !DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd" application-client display-nameCliente AGENDA ORION/display-name ejb-ref ejb-ref-nameMyAgendaS/ejb-ref-name ejb-ref-typeSession/ejb-ref-type homeAgendaSHome/home remoteAgendaS/remote /ejb-ref /application-client Then I tried to include a jndi.properties file in my app as i read in FAQ: java.naming.factory.initial=com.evermind.server. ApplicationClientInitialContextFactory java.naming.provider.url=ormi://localhost java.naming.security.principal=admin but it still does not work. When I tried to execute the client this the error I get: C:\orion\APPLIC~1\Agenda\Agenda-ejbjava -classpath .;C:\orion\orion.jar;C:\orio n\ejb.jar;C:\orion\jndi.jar; AgendaSClient Lanzada una excepcion. javax.naming.NamingException: Error reading application-client descriptor: No lo cation specified and no suitable instance of the type 'AgendaS' found for the ej b-ref MyAgendaS at com.evermind.server.ApplicationClientInitialContextFactory.getInitial Context(JAX, Compiled Code) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6 72) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:250 ) at javax.naming.InitialContext.init(InitialContext.java:226) at javax.naming.InitialContext.init(InitialContext.java:182) at AgendaSClient.main(AgendaSClient.java:16) I WILL APPRECIATE ALL OF YOUR HELP OR CLUES ! - David Sierra Fern ndez Ingeniero Tecnico de Telecomunicaci¢n AULA RETECAL (CEDETEL) Universidad de Valladolid Campus Miguel Delibes E-Mail: [EMAIL PROTECTED] 47011 Valladolid (SPAIN) -- -- Sierr@ --
Error using CMP in orion 1.1.36
Hi all, I'm always getting the following exception when using CMP (ejb 1.1 and ejb 2.0) in orion 1.1.36 and earlier versions: on the client side : java.lang.InternalError: Object was null but still part of the cache at com.evermind.server.rmi.bb.invokeMethod(JAX) at com.evermind.server.rmi.a2.invoke(JAX) at com.evermind.server.rmi.a3.invoke(JAX) at __Proxy1.create(Unknown Source) at om.fnv.kozijncalc.entities.klanten.KlantTest.initKlantTest.java:41) at com.fnv.kozijncalc.entities.klanten.KlantTest.mainKlantTest.java:100) Below is all the code and the deployment descriptors. I think it has something todo with orion's memory (bean caching ) managment. Has someone else have equal problems ? Or is it a bug ? Where can I find the bug list? Thank in advance. Wim Veninga. [EMAIL PROTECTED] the client code : package com.fnv.kozijncalc.entities.klanten; import java.io.*; import java.util.*; import javax.ejb.*; import javax.rmi.*; import javax.naming.*; public class KlantTest { static final String objNaam = "java:comp/env/Klant"; static final String fileName = "C:\\testKozijnEJB\\instellingen.properties"; public KlantTest() throws Exception { FileInputStream fis = new FileInputStream(this.fileName); Properties props = new Properties(); props.load(fis); //find the serverPortalHome System.out.print("Connecting to server..."); Context context = new InitialContext(props); Object portalRef = context.lookup(objNaam); KlantHome home = (KlantHome)PortableRemoteObject.narrow(portalRef,KlantHome.class); System.out.println(" done."); System.out.println("Creating new klant..."); Klant klant = home.create(new Integer(26)); /* Error OCCURES HERE */ klant.setKlantNaam("Jamper"); klant.setKlantAdres("testadres"); klant.setKlantPostcode("9501 BN"); klant.setKlantPlaats("TestPlaats"); klant.setKlantLand("Land"); klant.setKlantTelefoon("Telefoon"); klant.setKlantContactPersoon("Contact"); System.out.println("Created klant with following data : "); printKlant(klant); } private void printKlant(Klant k) throws Exception { System.out.println("Found klant : "); System.out.println("klant nr = " + k.getKlantNr().toString()); System.out.println("naam = " + k.getKlantNaam()); System.out.println("adres = "+ k.getKlantAdres()); System.out.println("postcode = "+ k.getKlantPostcode()); System.out.println("plaats = "+ k.getKlantPlaats()); System.out.println("land = "+ k.getKlantLand()); System.out.println("contact = "+ k.getKlantContactPersoon()); } public static void main(String args[]) { try { KlantTest klantTest = new KlantTest(); } catch(Exception e) { e.printStackTrace(); } } } application-client.xml: ?xml version="1.0"? !DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd" application-client display-nameKlant Test/display-name ejb-ref ejb-ref-nameKlant/ejb-ref-name ejb-ref-typeEntity/ejb-ref-type homecom.fnv.kozijncalc.entities.klanten.KlantHome/home remotecom.fnv.kozijncalc.entities.klanten.Klant/remote /ejb-ref /application-client EJB 2.0 code : Home : package com.fnv.kozijncalc.entities.klanten; import javax.ejb.*; import java.rmi.RemoteException; public interface KlantHome extends EJBHome { public Klant create(Integer klantNr) throws CreateException, RemoteException; public Klant findByPrimaryKey(Integer key) throws RemoteException, FinderException; } Remote : package com.fnv.kozijncalc.entities.klanten; import java.rmi.RemoteException; import javax.ejb.*; public interface Klant extends EJBObject { public java.lang.Integer getKlantNr() throws RemoteException; public java.lang.String getKlantNaam() throws RemoteException; public void setKlantNaam(java.lang.String value) throws RemoteException; public java.lang.String getKlantAdres() throws RemoteException; public void setKlantAdres(java.lang.String value) throws RemoteException; public java.lang.String getKlantPostcode() throws RemoteException; public void setKlantPostcode(java.lang.String value) throws RemoteException; public java.lang.String getKlantPlaats() throws RemoteException; public void setKlantPlaats(java.lang.String value) throws RemoteException; public java.lang.String getKlantLand() throws RemoteException; public void setKlantLand(java.lang.String value) throws RemoteException; public java.lang.String getKlantTelefoon() throws RemoteException; publ
Re: POSTGRES AND ORION NEWBIE QUESTION
Hi Robert, Your first question: Orion emulates the jdbc 2.0 functionality for you if you use class="com.evermind.sql.ConnectionDataSource" in data-sources.xml. So you will get something like this : data-source name="postgresql" {link to the database-schemas\postgresql.xml} class="com.evermind.sql.ConnectionDataSource" {Orion jdbc2.0 emulator} location="jdbc/postgreDS" pooled-location="jdbc/postgrePooledDS" xa-location="jdbc/xa/postgreXADS" ejb-location="jdbc/postgreEJBDS" url="jdbc:postgre:yourDB" connection-driver="" {location (class and package of postgre driver} username="your_username" password="your_password" / Your second question: Don't use getPooledConnection but use getConnection() because Datasource doesn't have a method getPooledConnection() Hope this helps. Greetings Wim Veninga email : [EMAIL PROTECTED] -Original Message- From: Robert Balahura [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Date: Thursday, July 27, 2000 10:14 AM Subject: POSTGRES AND ORION NEWBIE QUESTION Hello, I just want to make sure I'm on the right track. I am trying to use Orion and Postgres SQL database together. Postgres does not have the JDBC 2.0 driver available so I am wondering how to configure the data-source.xml so ORION will take care of creating a connection pool for me. Secondly, I am unsure as to how to which method to call to obtain a connection from the connection pool from my program. getConnection() or getPooledConnection()?? Any help would be greatly appreciated.. Thank-you, Rob
Re: application-client.xml, initial context
Hi Jens, you just put the application-client.xml at the client side in the META-INF directorie at the beginning of your clients classpath: for example : Suppose you have an client directory structure like this : C:\client\com\client\OrionEJBApplicationClient.class then you have to put the application-client.xml in the following directory C:\client\META-INF\application-client.xml -Original Message- From: Jens Stutte [EMAIL PROTECTED] To: Orion-Interest [EMAIL PROTECTED] Date: Monday, July 24, 2000 10:34 PM Subject: application-client.xml, initial context Hi, i think, there is some confusion out there what's the right way to obtain an initial context and how to specify the bindings for ejbs (and me too need a little help). There are (at least) two factorys provided by orion, the com.evermind.server.ApplicationClientInitialContextFactory and the com.evermind.server.rmi.RMIInitialContextFactory. Up to version 1.1.21 orion automatically put a jndi binding with the beans name specified in the ejb-jar.xml in the context which one got via the RMIInitialContextFactory - a very handy thing, only that it seems not to be covered by any spec... and the newest version does not offer these bindings any more, so that clients relying on RMIInitialContextFactory will fail in the future it seems (i discovered this, because i used this feature, too). Now i'm trying out to use the ApplicationClientInitialContextFactory, and found that documentation about the application-client.xml is rare - not regarding the contents but regarding the place, where to put it. I have for example an application with two modules, which reside _unpacked_ in the application directory, like appname - META-INF - application.xml - module1 - de (classes, this is actual a link to my classes dir) - META-INF - ejb-jar.xml - module2 - de (classes, this is actual a link to my classes dir) - META-INF - ejb-jar.xml each of these modules containing some beans, which are deployed correctly, it seems. I tried to put two application-client.xml files in the META-INFs of the two modules (on the server side), but the ApplicationClientInitialContextFactory still complains, that it can't find the META-INF/application-client.xml. So i suspected, i'll have to put it somewhere on the client side - but where? Or do i have to specify some magic words in the application.xml? I do not want to pack my classes into a client jar, if possible, but leave them unpacked in my CVS tree (within Netbeans/forte) while developing. Could someone please shed some light on the application-client.xml and how it's intended to be used? Thanx, Jens Stutte [EMAIL PROTECTED], http://www.netmedia.de NetMedia GmbH Neugrabenweg 5-7 66123 Saarbruecken Germany fon: +49 (0) 681 - 3 79 88 - 0 fax: +49 (0) 681 - 3 79 88 - 99
Corba clients accessing orion ejb, is it possible?
Hi, I want to know if it is possible to acces a ejb (session bean) running in orion from corba. And if so: 1 How to do it? 2 What orb do you need, i think it is possible with sun jdk1.3 but can you also do it with for instance visibroker for c++ , and if so what version omg corba spec compliant orb do i need( i heard 2.3 but i don't know for sure) ? 3 If it is possible to acces the ejb with c++ do i have to implement the complete javax.ejb package in c++ or does somebody know's about an implementation of this?