JBoss 3.0 beta doesn't deploy more than 64 entity beans
vrud Mar 23, 2002 3:38 PMHi all. On your site appeared the link to JBoss beta with Tomcat. It it's very temptating to use, but at the same time JBoss engine has changed. I tried to deploy our application we had bean successfully developing many monthes with JBoss alpha version. I found out that betta's entity beans limit is 64. It is probably of some xml parser or something else. Anyway, I put the code that generates beans, use the constant there to set the beans number.
Thanks in advance.
Code:
import java.io.*;
public class M {
public static void main(String[] arg) throws IOException {
String pattern = "BEAN_NAME",
ejbHead = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'><ejb-jar><enterprise-beans>",
ejbEnd = "</enterprise-beans><assembly-descriptor/></ejb-jar>",
ejbContent = "<ejb-name>BEAN_NAME</ejb-name><local-home>BEAN_NAMELocalHome</local-home>BEAN_NAMELocal<ejb-class>BEAN_NAMEBean</ejb-class><persistence-type>Bean</persistence-type><prim-key-class>java.lang.String</prim-key-class>False",
jbossHead = "<?xml version=\"1.0\" encoding=\"Cp1251\"?>false<container-configurations/><resource-managers/><enterprise-beans>",
jbossEnd = "</enterprise-beans>",
jbossContent = "<ejb-name>BEAN_NAME</ejb-name><local-jndi-name>java/comp/env/ejb/BEAN_NAME</local-jndi-name><configuration-name></configuration-name>",
home = "import javax.ejb.EJBLocalHome;import javax.ejb.EJBHome;import java.util.*;public interface BEAN_NAMELocalHome extends EJBLocalHome { public BEAN_NAMELocal create(java.lang.String key); public BEAN_NAMELocal findByPrimaryKey(java.lang.String key); }",
remote = "import javax.ejb.EJBLocalObject; public interface BEAN_NAMELocal extends EJBLocalObject {}",
bean = "import javax.ejb.EntityContext; import javax.ejb.EntityBean; public class BEAN_NAMEBean implements EntityBean { public java.lang.String ejbCreate(java.lang.String key) { return key; } public void ejbPostCreate(java.lang.String key) {} public void ejbRemove() {} public void ejbLoad() {} public void ejbStore() {} public java.lang.String ejbFindByPrimaryKey(java.lang.String key) { return key; } public void ejbActivate() {} public void ejbPassivate() {} public void ejbPostCreate() {} public void setEntityContext(EntityContext ec) {} public void unsetEntityContext() {} }";
int MAX_BEANS = 70;
java.util.regex.Pattern p = java.util.regex.Pattern.compile(pattern);
java.util.regex.Matcher m;
File dir = new File("src/"); dir.mkdirs();
FileWriter ejb = new FileWriter("src/" + "ejb-jar.xml"),
jboss = new FileWriter("src/" + "jboss.xml");
ejb.write(ejbHead); jboss.write(jbossHead);
for(int i=0; i<MAX_BEANS; i++) {
String beanName = "Bean" + i;
m = p.matcher(ejbContent); ejb.write(m.replaceAll(beanName));
m = p.matcher(jbossContent); jboss.write(m.replaceAll(beanName));
FileWriter homeFW = new FileWriter("src/" + beanName + "LocalHome.java");
FileWriter remoteFW = new FileWriter("src/" + beanName + "Local.java");
FileWriter beanFW = new FileWriter("src/" + beanName + "Bean.java");
m = p.matcher(home); homeFW.write(m.replaceAll(beanName)); homeFW.close();
m = p.matcher(remote); remoteFW.write(m.replaceAll(beanName)); remoteFW.close();
m = p.matcher(bean); beanFW.write(m.replaceAll(beanName)); beanFW.close();
}
ejb.write(ejbEnd); jboss.write(jbossEnd);
ejb.close(); jboss.close();
}
}