jboss4.03部署ejb所遇到的问题

hanfengmvp 2006-07-28 07:51:51
最近写一个HelloBean时把hello.jar文件放到了\server\default\deploy下面,可启动jboss时却抛出了异常
19:42:46,203 ERROR [MainDeployer] Could not create deployment: file:/D:/Program
Files/jboss-4.0.3SP1/server/default/deploy/hello.jar
org.jboss.deployment.DeploymentException: Verification of Enterprise Beans faile
d, see above for error messages.
请问一下这个异常大概是说明了什么错误?
谢谢
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
guiwenxing123 2006-07-31
  • 打赏
  • 举报
回复
欢迎加入JAVA(主要是struts,spring,hiberate等一些开源的)开发QQ群14672911,在这里我们相互学习,共同进步,工资一起涨(打广告的,闲聊的免进)

nighthawk 2006-07-30
  • 打赏
  • 举报
回复
楼主用的是3.0以下的版本吧
再次超越梦想 2006-07-30
  • 打赏
  • 举报
回复
还在玩儿这个呢?这么多配置文件,晕…
先装一下jboss-4.0.4.GA-Patch1(下载jboss-4.0.4.GA-Patch1-installer.jar安装EJB3.0),下面用eclipse开发一个类似的入门。注意要打开jdk5.0的特性(Annotation)。

创建一个Java项目,要加入这几个包,在<JBOSS_HOME>\client里的
jbossall-client.jar
jboss-aop-jdk50-client.jar
jboss-aspect-jdk50-client.jar
jboss-ejb3-client.jar
jboss-ejb3x.jar

Hello.java(远程接口)
package examples.session.stateless;

import javax.ejb.Remote;
@Remote
public interface Hello {
public String hello();
}

HelloBean.java(Bean的实现)
package examples.session.stateless;

import javax.ejb.Stateless;

import org.jboss.annotation.ejb.RemoteBinding;

@Stateless
@RemoteBinding(jndiBinding="ejb/hello")
public class HelloBean implements Hello {

public String hello() {
System.out.println("hello()");
return "Hello, World!";
}

}

HelloClient.java(测试客户端)
package examples.session.stateless;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class HelloClient {

public static void main(String[] args) throws Exception{
Context ctx=getInitialContext();
Hello hello=(Hello)ctx.lookup("ejb/hello");
System.out.println(hello.hello());
}

private static Context getInitialContext() throws NamingException {
Properties p=new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new InitialContext(p);
}

}

然后把Hello和HelloBean打包到jar文件中,我的是hello.jar,放到<JBOSS_HOME>\server\default\deploy下,会自动部署。我的信息如下:
20:34:30,015 INFO [Ejb3Deployment] EJB3 deployment time took: 15
20:34:30,031 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=hello
.jar,name=HelloBean,service=EJB3 with dependencies:
20:34:30,046 INFO [EJBContainer] STARTED EJB: examples.session.stateless.HelloB
ean ejbName: HelloBean
20:34:30,062 INFO [EJB3Deployer] Deployed: file:/E:/jboss4/server/default/deplo
y/hello.jar
这就说明部署成功,看,没有配置文件,需要的信息都在Annotation中了。一看就明白,不用我多说了吧,毕竟这个例子很简单。运行测试客户端,你应该得到如下的输出:
Hello, World!
同时,Jboss的控制台会看到:
20:34:35,578 INFO [STDOUT] hello()
怎么样?比EJB2.1的入门简单吧?我觉得简单了很多,以前要用什么EJBHome,EJBRemote……EntityBean的入门也简单多了,JBoss内置了hibernate,有点用Rails的感觉。
好了,大家一起努力学习吧!推荐个下载电子书的网站:
http://www.itebookhome.com
hanfengmvp 2006-07-29
  • 打赏
  • 举报
回复
应该不会的吧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>
<description>JBoss Hello World Application</description>
<display-name>Hello World EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>HelloWorld</ejb-name>
<home>test.inter.HelloHome</home>
<remote>test.inter.Hello</remote>
<ejb-class>test.bean.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>

jboss.xml为:
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HelloWorld</ejb-name>
<jndi-name>ejb/hello</jndi-name>
</session>
</enterprise-beans>
</jboss>
这应该没什么错吧,请各位在帮看一下有什么错误,谢谢了
liyuan_120 2006-07-29
  • 打赏
  • 举报
回复
创建包的时候出错了.看看你的配置文件是否正确.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧