groups and usermanager
Has anybody used more than one group outside of the defaultGroups for a usermanager? I have found that if you use EJBUserManager, and use more than one group in the EJBUser_groups table.. username='somename' value='my-admins,my-users' Only the first group in the list is used (my-admins), the second (my-users) group can't be used for authentication. Is there a workaround for this? regards, the elephantwalker
recent posts and ssl
Group, Calm down everybody. We all have the same interests here...we use orion, a great j2ee server, and we use the latest j2ee technologies. Nobody believes that national origin has anything to do with anything, except where we pay our taxes. There may have been a post by somebody, who jokingly said something or other...but nobody really believes that they REALLY believe that. I have a two questions: 1. If you have a website with SSL, you will necessarily have different urls for the secure part of the site. Is it better to run the ssl on a separate machine, or should we use a virtual host for the separate url on the same machine, and let the load balancer take care pushing the requests around? 2. So far I have only seen two places to get CA certificates for the secure site, Verisign and Tharwte. Are there other alternatives in the states for strong ssl certificates? Regards, The elephantwalker
login issue after restart of application
Dear group, I have noticed that if I restart an application to redeployI am no longer able to login into my site. What causes this...and is there a work around. I am using 1.2.9. Regards, Elephantwalker
RE: my orion freezes at a high load
..just a thought. Are use executing a stm.close() in your database code? Also, are you using pooled connections? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Thomas Krantz Sent: Friday, October 13, 2000 7:00 AM To: Orion-Interest Subject: my orion freezes at a high load Hi, I am stress testing Orion, and in my application I have lots of JDBC calls that use a configured data-source. I have noticed that Orion stops serving requests (not even static pages) after a while of high load. It still listen to port 80, but doesn't return any content. If I increase the "max-connections" data-source setting the system lives a little bit longer. Now, I realize that I probably have leaking connections, but shouldn't Orion log somewhere if the max-connection limit is reached? And why doesn't it serve static pages? I can't find anything strange in any logs at all. I am using Solaris 8 sparc with Java 1.2 (tried 1.3 also) and Orion 1.3.7. Any clues? / Thomas -- "Hard work often pays off after time, But laziness always pays off now." PGP Public Key: http://www.algonet.se/~tok/pgp.txt
RE: Invalidating an Entity bean
Have you tried putting a "required" in the transaction for the entity bean? Also, if the session bean is not using the entity bean to make the change in the table, you can't use any of the j2ee transaction stuff. I would only change the table 2 through the entity bean. You can do that in the session bean by calling the home, and findby to grab your entity bean, then make the change to table 2. This way you always have the bean fresh. If you are worried about having lots of beans lying around, you can make sure that you only have one instance of your entity bean in your session bean. The petstore example in the j2ee blueprint uses this approach. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Peter Delahunty Sent: Thursday, October 12, 2000 4:02 AM To: Orion-Interest Subject: Invalidating an Entity bean Hi gurus How do I do this cleanly. I have and Entity that has attributes A,B,C and D. These attributes are all read from database tables. A and B are read from Table 1 C and D are read from Table 2 So I have Entity Bean 1, this is loaded by the app server (perhaps by a findByPrimaryKey) method. This means that Entity Bean 1 is now a cache of the data in A,B,C and D. However while this entity bean is in the cache, via a session bean I change the data of C and D in table 2. This mean that Entity Bean 1 now has dirty data. So the question is how do I force the Entity beans to do and EJB Load. Also the data in C and D in table 2 may be shared by N number of entity beans so I may need to refresh N number of Entity Beans depending on which ones are in the cache. I only want to call EJB load for Entity beans currently in the cache and of these I only want to call ejb load for the ones that refer to the changed data. Cheers Peter
RE: EJB-EJB relationship
Di, Take a look a this: http://java.sun.com/j2ee/j2sdkee/techdocs/guides/ejb/html/Advanced2.html This sun document has examples of ejb to ejb and ejb to helper classes for 1-1, 1-many and many to many relationaships. I found it very useful. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Truong Di Ly Sent: Tuesday, October 10, 2000 7:51 AM To: Orion-Interest Subject: EJB-EJB relationship Hi, how can i write EJB-EJB and EJB-Dependent-class relationships without orion specific descriptor files (without table mapping, etc.). I have an orion specific example , time management app and would like it to be application server independent. Someone would like to see? Email me! Thanks. Di
probs with bmp and foreign keys
Hello, I am having problems with several bmp entity beans and foreign keys. I have several beans, each bean corresponds to a table. One entity bean whose primary key is a foreign key in several other beans is giving me problems. I execute a remove on the the "mother" bean...and get all kinds of thrown exceptions. The first is an SQL Exception on the removal of one row in the project or "mother" table. What am I doing wrong? my tables: create table project { projectid varchar(32) not null, userid varchar(32) not null, description varchar2(255), constraint project_pk primary key(userid,projectid) create table material ( materialid varchar2(32) not null, timestamp varchar2(19) not null, description varchar2(255), projectid varchar(32) not null, userid varchar(32) not null, constraint material_fk foreign key(projectid,userid) references project(projectid,userid), constraint material_pk primary key(materialid,timestamp,projectid,userid)); I have an entity bean (bmp) for project and material. I have been having no problems adding and removing projects or material entity beans with a bean.remove() methodexcept when the entity bean pk for project is also in material as a fk. Orion throws this error when I execute a remove on a project bean which is referenced in the material bean: SQL Exception in remove ... then I get an IllegalStateException on the project entity bean... It only goes down hill from there... orion throws a DeadlockException in the project passivate method then I get a MarshallingXAException error from OrionError while delisting bean from TX. Where did I go wrong? Regards, Lawrence
RE: probs with bmp and foreign keys
You're right about that. However, in my object oriented zeal, I put a remove for all of the referenced beans in my project bean ejbRemove method, so all of the beans with fk's from project are removed before project is removed. I still get the same failure mode. I am still investigating this issue. Regards, Lawrence .ps Sun has a 1 to many example in their j2ee reference guide, and they have two solutions to the one to many case. In the first case, they do not use an entity bean for the table with fk's, but store the references in a "helper" class which is instanced in the entity bean and stored in a List(I think they use cmp). They also give an example where they reference the entity context to instance the List, but store ejb's in the List instead of "helper" classes. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED] Sent: Tuesday, October 03, 2000 4:46 AM To: Orion-Interest Subject: RE: probs with bmp and foreign keys In the ejbRemove method for your project ejb, are you calling remove for the material first? Most databases won't let you delete a row if another table is referencing it, unless that particular db supports cascading deletes and it's enabled. Typically in 1-M relationships like this (I assume you can have more than one material per project) you have to delete the children prior to deleting the parent. Hope this helps. -Original Message----- From: Lawrence Fry [mailto:[EMAIL PROTECTED]] Sent: Tuesday, October 03, 2000 2:56 AM To: Orion-Interest Subject: probs with bmp and foreign keys Hello, I am having problems with several bmp entity beans and foreign keys. I have several beans, each bean corresponds to a table. One entity bean whose primary key is a foreign key in several other beans is giving me problems. I execute a remove on the the "mother" bean...and get all kinds of thrown exceptions. The first is an SQL Exception on the removal of one row in the project or "mother" table. What am I doing wrong? my tables: create table project { projectid varchar(32) not null, userid varchar(32) not null, description varchar2(255), constraint project_pk primary key(userid,projectid) create table material ( materialid varchar2(32) not null, timestamp varchar2(19) not null, description varchar2(255), projectid varchar(32) not null, userid varchar(32) not null, constraint material_fk foreign key(projectid,userid) references project(projectid,userid), constraint material_pk primary key(materialid,timestamp,projectid,userid)); I have an entity bean (bmp) for project and material. I have been having no problems adding and removing projects or material entity beans with a bean.remove() methodexcept when the entity bean pk for project is also in material as a fk. Orion throws this error when I execute a remove on a project bean which is referenced in the material bean: SQL Exception in remove ... then I get an IllegalStateException on the project entity bean... It only goes down hill from there... orion throws a DeadlockException in the project passivate method then I get a MarshallingXAException error from OrionError while delisting bean from TX. Where did I go wrong? Regards, Lawrence
RE: Deploying same set of EJBs on single Orion Server but multiple data servers
Deepak, I believe you can create a separate data-source for each server, and put this in the data-source.xml. Then use a 1-1 mapping between each entity bean and the data-source. If you already have your entity bean(s) (I would use some kindof simple naming convention for your entity bean(s) to reflect their the server mybean1, mybean2, mybean3, etc. the only difference between them is their reference to each separate data-source), you can use your session bean to select which of the entity bean's to grab. Of course, you would then have to properly describe each of these in your ejb-jar.xml and application.xml. Its brute force, but its gotta work. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Goel, Deepak Sent: Thursday, September 21, 2000 6:39 PM To: Orion-Interest Subject: Deploying same set of EJBs on single Orion Server but multiple data servers Hello everyone, I have a set of EJBs which I have finally managed to run on Orion. Now, I want that the database server to which these EJBs talk be changed dynamically at run-time. For example, I have about 10-15 servers all having exactly the same database schema. Now depending on the client request, when I want to instantiate an EJB I may have to look up at any of these 10-15 servers. I know that this is not specific to Orion but I'll appreciate any help on how to do this with Orion. TIA, Deepak Goel
RE: Error while compiling
Chris, I noticed the your ejb-jar.xml has an close commentI think that has screwed up your deployement, since this is not a well formed xml document. entity descriptionThis bean implements a GUID factory/description display-nameGUID Factory Bean/display-name ejb-namecom.canlink.components.base.GUIDFactoryBean/ejb-name homecom.canlink.components.base.GUIDFactoryHome/home remotecom.canlink.components.base.GUIDFactory/remote ejb-classcom.canlink.components.base.GUIDFactoryBean/ejb-class persistence-typeContainer/persistence-type prim-key-classcom.canlink.components.base.GUIDFactoryPK/prim-key-class reentrantFalse/reentrant cmp-fieldfield-nameiFactory_ID/field-name/cmp-field cmp-fieldfield-namecity/field-name/cmp-field primkey-fieldname/primkey-field-- ***here is the offending tag*** /entity Regards, Lawrence -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Chris EvansSent: Friday, September 22, 2000 9:26 AMTo: Orion-InterestSubject: Error while compilingHey everybody, Has anybody got any ideas about why this won't work. It's really frustrating!!! G:\orionjava -jar orion.jar Auto-unpacking G:\3.0\rel\guid-factory.ear... done. Auto-unpacking G:\3.0\rel\guid-factory\guid-factory-web.war... done. Auto-deploying guid-factory (Assembly had been updated)... Auto-deploying guid-factory-ejb.jar (No previous deployment found)... Error compiling file:/G:/3.0/rel/guid- factory/guid-factory-ejb.jar: No direct database fields for primary key: bean GUID Factory Bean Orion/1.2.9 initialized Here's what my ejb-jar.xml file looks like ejb-jar description/description enterprise-beans entity descriptionThis bean implements a GUID factory/description display-nameGUID Factory Bean/display-name ejb-namecom.canlink.components.base.GUIDFactoryBean/ejb-name homecom.canlink.components.base.GUIDFactoryHome/home remotecom.canlink.components.base.GUIDFactory/remote ejb-classcom.canlink.components.base.GUIDFactoryBean/ejb-class persistence-typeContainer/persistence-type prim-key-classcom.canlink.components.base.GUIDFactoryPK/prim-key-class reentrantFalse/reentrant cmp-fieldfield-nameiFactory_ID/field-name/cmp-field cmp-fieldfield-namecity/field-name/cmp-field primkey-fieldname/primkey-field-- /entity /enterprise-beans assembly-descriptor security-role descriptionUsers/description role-nameusers/role-name /security-role /assembly-descriptor /ejb-jar Here's what my application.xml file looks like application display-nameSMP3 GUID Factory/display-name module ejbguid-factory-ejb.jar/ejb /module module web web-uriguid-factory-web.war/web-uri context-root/guid-factory-web/context-root /web /module /application Here's what my web.xml file looks like web-app !-- A friendly name for this web application, this name can be used in visual development environments, for instance -- display-nameGUID Factory Bean/display-name !-- A human-readable description of this web application -- descriptionEntity Bean that provides GUID /description !-- The file(s) to show when no file is specified, i.e. only the directory is specified. -- welcome-file-list welcome-fileindex.html/welcome-file /welcome-file-list !-- A JNDI binding from "ejb/AddressBook" to the address book bean. This is the name we will use in our JSP pages. -- ejb-ref ejb-ref-namecom/canlink/components/base/GUIDFactoryBean/ejb-ref-name ejb-ref-typeEntity/ejb-ref-type homecom.canlink.components.base.GUIDFactoryHome/home remotecom.canlink.components.base.GUIDFactory/remote /ejb-ref security-role descriptionUsers/description role-nameusers/role-name /security-role /web-app Thanks for any help!!!
RE: JavaMail
Amir, Doesn't the ATM application send email? Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Amir Peivandi Sent: Friday, September 22, 2000 11:26 AM To: Orion-Interest Subject: JavaMail Dose anybody have a simple sample application which uses JavaMail to send email? Amir
RE: User/Group manager guide
Guilherme, Here Here! I'm glad somebody said it. But without documentation, you should look at the archives to this list, because many of these problems have already been worked out. For example...it isn't said anywhere in the documentation, but the EJBUserManager is the most useful device for ecommerce. With this, you can automatically login users and create users for your website...without one call to the EJBUserManager stuff. In order to use this, you will have to add the following to your orion-application.xml file: user-manager class="com.evermind.ejb.EJBUserManager" property name="home" value="com.evermind.ejb.EJBUser" / property name="defaultGroups" value="users" / /user-manager I found this tidbit in the mail archive. Then you can use the role manager to allow users access to ejb resources, and the role manager automatically uses the your databank with cmp to create userscreate a user like this: try { RoleManager roleManager = (RoleManager)new InitialContext().looku("java:comp/RoleManager"); if(roleManager.getPrincipal(username) != null) throw new DuplicateAccountException(username) Principal principal = roleManager.createPrincipal(username, password); roleManager.addToRole(principal, role); roleManager.store(); } catch(NamingException e){} catch(UserAlreadyExistsException e){} catch(InstantiationException e){} catch(IOException e){} and like magic, a user database is created. Of course, you also have to make sure your roles are part of your groups. This is the great secret of orion...great stuff, no documentation! It took me weeks to figure this out. I wish there was a tutorial on these simple issues: How do you login in a client through a database of usernames/passwords? How do you enroll a client into a database of usernames/passwords? How do you control access to web resources (ejb's, jsp's, servlets)? The existing documentation on this is about as clear as mud. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Guilherme Ceschiatti Sent: Monday, September 18, 2000 1:58 PM To: Orion-Interest Subject: User/Group manager guide Hi! I'm almost leaving Orion because the lack of documentation, mainly about how to manage User/Groups. As many people have lots of doubts related to it too, I'm asking the Orion team or anybody else to write a tutorial about it. I really don't want to leave Orion, because I've made good things on it, but I'm spending a lot of time trying to "decifrate" how to use the Orion API. Thanks. Guilherme Ceschiatti [EMAIL PROTECTED]
RE: xml validation
Derek, Go to xml.apache.org, this is where the xerces parser project is located. I use this parser. Here is a bit of code to parse a document...it uses sun's javax extensions for "pluggable" parser, so it will work with any parser. If you download the xerces stuff and put it in the orion directory, it should work.I don'tuse the xercesjar that comes withorion, its a little old. The SaxParseException is thrown when the xml isn't complient with the dtd, or when it is not well formed xml. Notice that there is a statement: docBuilderFactory.setValidating(true); ... this is the bit that makes the parser a validating parser. You also might think of only using a sax parser (this example is dom), if you only want a few bits of the xml file. This will save a little on memory. Regards, Lawrence import java.util.*;import java.io.File;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.DocumentType;import org.w3c.dom.Node;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.DocumentBuilder;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;import java.io.IOException;import java.net.URL; public class Test { // // Reading and writing an XML document stored in a file. // public static void main (String argv []) {Document doc; if (argv.length != 1) { System.err.println ("Usage: cmd filename"); System.exit (1);} try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); docBuilderFactory.setValidating(true); Test t = new Test(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); URL url = t.getClass().getResource(argv[0]); doc = docBuilder.parse (url.toString()); } catch (SAXParseException err) { System.out.println ("** Parsing error" + ", line " + err.getLineNumber ()+ ", uri " + err.getSystemId ()); System.out.println(" " + err.getMessage ()); // print stack trace as below } catch (SAXException e) { Exceptionx = e.getException (); ((x == null) ? e : x).printStackTrace (); } catch (Throwable t) { t.printStackTrace ();} System.exit (0); } -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Derek AkersSent: Monday, September 18, 2000 3:39 PMTo: Orion-InterestSubject: xml validation I am building an application that received xml from various sources and does various things with it... I am currently trying to figure out how to validate an xml string/source against a given dtd (ie - does xml "x" conform to dtd "y")... does anyone have any suggestions as to how I can go about incorporating this functionality into the receiving bean (ejb)? I realize that there are several parsers and validators out there, but what I am looking for is some code for using them manually Derek Akers Internet Application DeveloperEldan Software, Toronto(416) 341-0070www.eldan.com
RE: Benchmarks
Christof, I read this article, and the comparison in this benchmark is between php, perl and java. The benchmark is not intended to compared j2ee application servers, and as noted in the article, only includes "toy" applications like hello world. The conclusion of the article is that java is as good or better than php and perl. However, lets make some comparisons. Orion is about 2% faster than Resin, which in my book is nearly the same. However, Resin is not a j2ee server, and uses non-j2ee ejb protocols. Most of us use Orion for the ejb support. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Christof Baumgärtner Sent: Saturday, September 16, 2000 10:18 AM To: Orion-Interest Subject: Benchmarks Orionserver claims to be the fastest one out there. What is the official comment to the numbers presented at http://www.caucho.com/articles/benchmark.xtp ?
RE: What does this error mean?
I've included the ejb-jar.xml in both places, the META-INF directory in the jar, and the META-INF directory where my jar is located. It seems to work. If you are pointing to the jar file in your application xml file, the directory shouldn't be needed. What does you application xml file point to? I have a module in the application.xml that looks like this: module ejbmyejbdirectory/myejbjar.jar/ejb /module I believe when the war file is made, the extraneous META-INF directory in the myejbdirectory will be unnecessary. Regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Hauke Zühl Sent: Tuesday, September 05, 2000 3:23 AM To: Orion-Interest Subject: What does this error mean? Hello folks! Well, I am pretty new to EJBs (and so to this list) and got into real trouble: I have a Web-application including a JSP-file and an EJB. So, when I try to dploy it, I receive the following message: Error loading package at file:/home/stp/stp/rel/inventar/inv_liste/inventar-ejb.jar, Unable to find/read asembly info for /home/stp/stp/rel/inventar/inv_liste/inventar-ejb.jar (META-INF/ejb-jar.xml) Installed inv_liste... The thing is: I have an ejb-jar.xml file in my inventar-ejb.jar! So what did I wrong? Any hints are really appreciated. Regards, Hauke
RE: Which JDK to use?
Stas, I have been having great luck with IBMJava2-13 on my linux box. Make sure you have glibc 2.1.2 or better, I found an issue with glibc 2.1.1. Otherwise, its works findand its FAST! regards, Lawrence -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Stanislav Maximov Sent: Thursday, August 31, 2000 1:46 PM To: Orion-Interest Subject: Which JDK to use? Importance: High Hello, I've tried Blackdown 1.2.2, but it seems to be not very fast. Could you please suggest me another JDK to use on Linux with Orion 1.0.3? Thanks in advance. stas@
datasource user manager
Dear group, I can't seem to find which xml file I should put my init-params for DataSourceUserManager. Does anybody know this? Regards, Lawrence Fry
usermanager's
Ok...I admit it, I am stuck in user-land and need a map to get out. It looks like the usermanager methodology is the way to authenticate my users on my website. However, I am a little stuck. If you look at the pet store example, nobody can log in unless you are a user as identified in the principals.xml file, or you create a new user everytime. Ok for a demo, but pretty useless for an ecommerce application. The datasourceusermanager seems pretty good, except that without the container/transaction stuff, we would have to implement all of that ourselves. That brings me to the ejbusermanager. Its part of the ejb/transaction management stuff, and provided my database can be relatively secure, we can do our user authentication. But I have some befuddeling questions: 1. If we include the user-manager declaration in the orion-application.xml, is the rolemanager the proper interface for logging users in? Or must we get the ejb reference, and hardcode the login? ,ie, userbean.authenticate(password)... 2. Will I need a separate datasource for the ejbusermanager? 3. Are there any examples of ejbusermanager authentication (soup to nuts)? Regards and buffudled, Lawrence