[Installation, Configuration & Deployment] - JBoss 4.2.2 Deployment/class loader problem
by chrismm
Im getting this error from one of my EJBs (several hundred others deploy fine) when I startup jboss 4.2.2
?
2009-10-22 12:10:52,177 WARN [org.jboss.ejb.EJBDeployer.verifier] EJB spec violation:
Bean : TimedFeeReport
Section: 22.2
Warning: The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods in the <ejb-class> element.
Info : Class not found on 'com.rolfeandnolan.merlin.ejb.timedfeereport.TimedFeeReportEJB': No ClassLoaders found for: com.rolfeandnolan.merlin.ejb.timedfeereport.TimedFeeReportEJB
2009-10-22 12:10:52,180 ERROR [org.jboss.deployment.MainDeployer] Could not create deployment: file:/spd1/home/jboss/jboss-4.2.2.GA/server/UnitTest422/tmp/deploy/tmp18734FeesDirect_2.9_99999.ear-contents/timedfeereportEJB.jar
EJB-jar.xml :-
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar id="EJBJar_1144674068856">
<enterprise-beans>
<ejb-name>TimedFeeReport</ejb-name>
<local-home>com.rolfeandnolan.merlin.ejb.timedfeereport.TimedFeeReportLocalHome</local-home>
com.rolfeandnolan.merlin.ejb.timedfeereport.TimedFeeReportLocal
<ejb-class>com.rolfeandnolan.merlin.ejb.timedfeereport.TimedFeeReportEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Long</prim-key-class>
False
<cmp-version>2.x</cmp-version>
<abstract-schema-name>TimedFeeReport</abstract-schema-name>
<cmp-field>
<field-name>timedFeeReportID</field-name>
</cmp-field>
<cmp-field>
<field-name>exchangeCode</field-name>
</cmp-field>
<cmp-field>
<field-name>transactionType</field-name>
</cmp-field>
<cmp-field>
<field-name>membershipBasis</field-name>
</cmp-field>
<cmp-field>
<field-name>pitBrokerFeeSet</field-name>
</cmp-field>
<cmp-field>
<field-name>clearingBrokerFeeSet</field-name>
</cmp-field>
<cmp-field>
<field-name>description</field-name>
</cmp-field>
<cmp-field>
<field-name>owner</field-name>
</cmp-field>
<cmp-field>
<field-name>availableTo</field-name>
</cmp-field>
<cmp-field>
<field-name>executionTime</field-name>
</cmp-field>
<cmp-field>
<field-name>nextExecution</field-name>
</cmp-field>
<cmp-field>
<field-name>createdBy</field-name>
</cmp-field>
<cmp-field>
<field-name>createdDate</field-name>
</cmp-field>
<cmp-field>
<field-name>updatedBy</field-name>
</cmp-field>
<cmp-field>
<field-name>updatedDate</field-name>
</cmp-field>
<primkey-field>timedFeeReportID</primkey-field>
<ejb-local-ref>
<ejb-ref-name>ejb/KeyGenerator</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.rolfeandnolan.merlin.ejb.keygenerator.KeyGeneratorLocalHome</local-home>
com.rolfeandnolan.merlin.ejb.keygenerator.KeyGeneratorLocal
<ejb-link>keygeneratorEJB.jar#KeyGenerator</ejb-link>
</ejb-local-ref>
<query-method>
<method-name>findPendingTimedFeeReports</method-name>
<method-params>
<method-param>java.util.Date</method-param>
</method-params>
</query-method>
<ejb-ql><![CDATA[select OBJECT (o) from TimedFeeReport o
WHERE o.nextExecution <= ?1]]></ejb-ql>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<ejb-name>TimedFeeReport</ejb-name>
<method-name>*</method-name>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4261711#4261711
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4261711
16 years, 8 months
[JBoss Remoting Users] - Re: JBoss RMI + Serialization performance issue
by ravi_eze
hi,
Here's a new test. Even here the jboss socket comm (with/ without jboss serialization) does badly.The machines are the same linux boxes and no other process is runnin on it.
First we ran the test for 1000 times(say this as a batch) and 15 such batches. Took the average of last 12 of them(considering jvm warmups etc). We did this for Java RMI with raw_socket (or javaRMI with java serialization) Then we did the same with Jboss RMI over socket (socket transport with jboss serialization). We did this as the same process and as a different processes. In all the cases socket transport with java serialization took abt 35% more time than java RMI with java serialization.
Now considering jboss RMI with jboss serialization it takes more than 10 times w.r.t. java RMI with java serialization. I am not sure where i am doing wrong. below is the code
public class Person implements Serializable {
| int id;
| private Vector<Person> personVector = null;
|
| //HERE WE POPULATE A TREE WITH A GIVEN DEPTH AND BREADTH.
| public Person populateDepth(Person person, int currentDepth, int breadth, int finalDepth) {
| if (currentDepth >= finalDepth) {
| return person;
| } else {
| person.personVector = new Vector<Person>(breadth);
| this.id = this.personID++;
| for (int i = 0; i < breadth; i++) {
| Person p = new Person();
| person.personVector.add(p);
| populateDepth(p, currentDepth + 1, breadth, finalDepth);
| }
| }
| return person;
| }
|
| //DOES THE JAVA SERIALIZATION
| public byte[] getJavaBytes() throws Exception {
| ByteArrayOutputStream st = new ByteArrayOutputStream(64 * 1024);
| ObjectOutputStream os = new ObjectOutputStream(st);
| os.writeObject(this);
| byte[] s = st.toByteArray();
| return s;
| }
|
| //DOES JBOSS SERIALIZATION.
| public byte[] getJbossBytes() throws Exception {
| ByteArrayOutputStream st = new ByteArrayOutputStream(64 * 1024);
| ObjectOutputStream os = new JBossObjectOutputStream(st);
| os.writeObject(this);
| byte[] s = st.toByteArray();
| return s;
| }
|
| //STRESS CODE
| public static long stress(IRemote playerInterface, Person player, int hits) throws Exception {
| long startingTime;
| long endTime;
| startingTime = System.currentTimeMillis();
| for (int i = 0; i < hits; i++) {
| Person result = playerInterface.execute(player);
| }
| endTime = System.currentTimeMillis();
| return endTime - startingTime;
| }
|
| }
|
|
Also we see Jboss serialization to produce 40% more bytes than java serialization for the above prog.
Cleint prog is as follows
| uri= "socket://10.1.131.96:8092?serializationtype=jboss";
| int depth=15;
| int breadth =2;
| remote = (IRemote) TransporterClient.createTransporterClient(uri, IRemote.class);
| Person p = new Person();
| p = p.populateDepth(p, 0, breadth, depth);
| return Person.stress(remote, p, hits);
|
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4261694#4261694
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4261694
16 years, 8 months