关于一个jboss-4.0.3SP1和JBUILDER 2006 集成的问题
我用JBOSS4.03 和JBUILDER 2006集成了一下, 因为是初学者在实验的时候出现的问题,
请高手帮我看一下。。
//Hello.java
package j2eetest;
import javax.ejb.EJBObject;
import com.sun.org.apache.xpath.internal.operations.String;
import java.rmi.RemoteException;
public interface Hello extends EJBObject {
public String helloWorld() throws RemoteException;
}
//HelloBean
package j2eetest;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
import java.io.*;
import com.sun.org.apache.xpath.internal.operations.String;
public class HelloBean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
System.out.println("ejb Create!");
}
public void ejbRemove() {
System.out.println("ejb remove");
}
public void ejbActivate() {
System.out.println("ejb is activate");
}
public void ejbPassivate() {
System.out.println("ejb Passivate!");
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
System.out.println("ejb setSession!");
}
public String helloWorld() {
return "HELLOWORLD";
}
}
//HelloHome.java
package j2eetest;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
public interface HelloHome extends EJBHome {
public Hello create() throws CreateException, RemoteException;
}
//ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<display-name>Hello</display-name>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>j2eetest.HelloHome</home>
<remote>j2eetest.Hello</remote>
<ejb-class>j2eetest.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Hello</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
//jboss.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<jndi-name>Hello</jndi-name>
</session>
</enterprise-beans>
</jboss>
这些是EJB的信息, 在下面我使用了一个测试程序 ,运行时出现了
log4j:WARN No appenders could be found for logger (org.jboss.security.SecurityAssociation).
log4j:WARN Please initialize the log4j system properly.
的错误
package j2eetest;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;
import java.util.Hashtable;
import java.rmi.RemoteException;
public class HelloTestClient1 {
private Hello hello = null;
private HelloHome helloHome = null;
public HelloTestClient1() {
initialize();
try{
hello.helloWorld();
}catch(RemoteException re){
System.out.println("hello helloworld error!");
}
}
public void initialize() {
try {
Context context = getInitialContext();
Object ref = context.lookup("Hello");
helloHome = (HelloHome) PortableRemoteObject.narrow(ref, HelloHome.class);
hello = helloHome.create(); //这里出现了异常
} catch (Exception e) {
e.printStackTrace();
}
}
private Context getInitialContext() throws NamingException {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new InitialContext(environment);
}
public Hello create() {
try {
hello = helloHome.create();
} catch (Exception e) {
return hello;
}
public static void main(String[] args) {
HelloTestClient1 client = new HelloTestClient1();
}
}
请高手一定帮我看看是什么原因 谢谢了。。。。