JBossIDE Eclispe 开发EJB2.1实例

EJB2.1开发实例
Create by:forevering 2005-10-27
1.环境配置
1)JDK1.5 文件名:jdk-1_5_0_05-windows-i586-p.exe
下载地址:
https://jsecom16k.sun.com/ECom/EComActionServlet;jsessionid=31A76905496B86DCF9BCFE1CACE79895
2)编译器采用JBoss Eclipse IDE1.5RC1 文件名:JBossIDE-1.5RC1-Bundle-win32.zip
下载网址:http://www.jboss.com/products/jbosside/downloads
3)应用服务器:JBoss4.0.3 (JBoss4.0版本集成Tomcat) 文件名:jboss-4.0.3-installer.jar
下载网址:http://www.jboss.com/products/jbossas/downloads
4)安装jdk-1_5_0_05-windows-i586-p.exe,将下载好的JBossIDE-1.5RC1-Bundle-win32.zip解压都到某个目录即可,本例D:\eclipse;双击jboss-4.0.3-installer.jar即可安装(注意:不要将.jar文件与winrar建立关联),本例安装目录D:\jboss-4.0.3。
5)设置环境变量,本例环境变量如下:
JAVA_HOME= C:\Program Files\Java\jdk1.5.0
JBOSS_HOME=D:\jboss-4.0.3
Path=%JAVA_HOME%\bin;%JBOSS_HOME%\bin;
Classpath=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
6)启动JBoss,在命令行中输入:
>cd D:\jboss-4.0.3\bin 回车进入bin目录
D:\jboss-4.0.3\bin>run.bat 回车运行jboss
如图:
即可看到JBoss启动画面,如图
在IE浏览器中输入:http://localhost:8080/ 回车即可看到JBoss欢迎页面
至此,环境搭建完毕。
2.开发EJB应用
2.1 开发Session Bean
1)启动eclipse
2)建立J2EE1.4项目,File->New->Project
点击 Next,输入项目名称,本例为Fibonaci
点击 Next,在Source一栏中点击 Add Folder,输入src用来存放项目的源码、配置文件等。
点击Finish项目建立完成,目录结构如下图:
3)创建Session Bean,点击src New->Other..
选择Session Bean,点击 Next
输入包名:fibonaci.ejb,文件名:FiboBean
点击 Finish完成Session Bean,目录结构如下
添加业务逻辑方法,点击FiboBean J2EE->Add Business Method
方法名:compute 数据类型:double[],参数int number[]
点击Finish完成
代码如下:
public double[] compute(int number) {
if (number < 0) {
throw new EJBException("Argument should be positive");
}
double[] suite = new double[number + 1];
suite[0] = 0;
if (number == 0) {
return suite;
}
suite[1] = 1;
for (int i = 2; i <= number; i++) {
suite[i] = suite[i - 1] + suite[i - 2];
}
return suite;
}
2.2 XDoclet设置EJB配置
1)EJB设置
点击项目右键->Properties->XDoclet Configurations->Add…
选中EJB,添加ejbdoclet
设置ejbdoclet属性:a) destDir为src b)ejbSpec为2.1
添加fileset,属性:a) dir为src b) includes为**/*Bean.java
添加deploymentdescriptor,属性 destDir为src/META-INF
添加jboss,属性:a) Version为4.0 b) destDir为src/META-INF
添加packageSubstitution,属性a) package为ejb b)substituteWith为interfaces
添加homeinterface和remoteinterface,不需要设置属性
点击OK,选中项目右键Run XDoclet
















可以看到Console信息





运行成功后,项目中
fibonaci.interfaces和META-INF被创建。
至此,ejb创建完成。









2.3开发Servlet
创建HTTP Servlet

输入Package:fibonaci.web Name:ComputeServlet,选中init()/service()/doPost()方法,点击Finish。
在项目中看到ComputeServlet.java,添加代码
ComputeServlet.java代码:
package fibonaci.web;

import javax.rmi.PortableRemoteObject;
import javax.servlet.http.HttpServlet;

import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import java.io.*;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.Context;
import javax.naming.InitialContext;
import fibonaci.interfaces.Fibo;
import fibonaci.interfaces.FiboHome;

public class ComputeServlet extends HttpServlet {
private FiboHome home;
public ComputeServlet() {
super();
}
public void init(ServletConfig config) throws ServletException {
try {
Context context = new InitialContext();
Object ref = context.lookup("java:/comp/env/ejb/Fibo");
home = (FiboHome)PortableRemoteObject.narrow(ref, FiboHome.class);
} catch (Exception e) {
throw new ServletException("Lookup of java:/comp/env/ failed");
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();

out.println("<html><head><title>");
out.println("Fibonaci Computation");
out.println("</title></head>");
out.println("<body>");

out.println("<h1>");
out.println("Fibonaci Computation");
out.println("</h1>");

try {
Fibo bean = home.create();
int limit = 0;
String value = req.getParameter("limit");
if (value != null) {
try {
limit = Integer.parseInt(value);
} catch (Exception e) {
}
}
double[] result = bean.compute(limit);
bean.remove();

out.println("<p>");
out.print("The ");
out.print(limit);
out.print(" first Fibonacci numbers ");
for (int i = 0; i < result.length; i++) {
out.println("<br>");
out.println(i);
out.println(" : ");
out.println(result[i]);
}
out.println("</p>");

} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace(out);
} finally {
out.println("</body></html>");
out.close();
}
}
}
代码添加完毕后,需要添加XDoclet tags,在开始注释处输入@web,如下图:
设置内容如下:
/**
* Servlet Class
* @web.servlet name="Compute"
* display-name="Computation Servlet"
* description="Servlet that compute Fibonacci suite"
* @web.servlet-mapping url-pattern="/Compute"
* @web.ejb-ref name="ejb/Fibo"
* type="Session"
* home="fibonacci.interfaces.FiboHome"
* remote="fibonacci.interfaces.Fibo"
* @web.servlet-init-param name="A parameter"
* value="A value"
* @jboss.ejb-ref-jndi ref-name="ejb/Fibo"
* jndi-name="ejb/Fibo"
*/
2.4 XDoclet设置web配置
添加Web/webdoclet,属性destDir为src/WEB-INF
添加fileset,属性:a) di为src b) includes为**/*Servlet.java
添加deploymentdescriptor,属性:Servletspec为2.4
添加jbosswebxml,属性:Version为4.0
点击OK,XDoclet设置完成。点击项目右键->Run XDoclet。
运行成功后,WEB-INF被创建到项目中。
创建docroot目录,在docroot目录中创建index.html
index.html代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Fibonacci Application</title>
</head>
<body bgcolor="#FFFFFF">
<h1>Fibonacci Form</h1>
<form action="Compute" method="POST">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td>Limit :</td>
<td>
<input type="text" name="limit"
value="50"></input>
</td>
</tr>
<tr>
<td>
<input type="submit" name="Compute"
value="Compute"></input>
</td>
<td>
</td>
</tr>
</table>
</form>
</body>
</html>
3 部署文件设置
3.1创建application.xml
点击src/META-INF目录,右键New->Other,选择EAR1.4 Deployment Descriptor
application.xml内容
<?xml version="1.0" encoding="UTF-8"?>
<application version="1.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>Sum Application</display-name>
<module>
<ejb>FiboEJB.jar</ejb>
</module>
<module>
<web>
<web-uri>FiboWeb.war</web-uri>
<context-root>/fibo</context-root>
</web>
</module>
</application>
3.2创建FiboEJB.jar
点击项目右键->Properties->Packaging Configurations
添加目录
点击Project Folder,选择bin目录
Includes输入:fibonacci/ejb/*.class,fibonacci/interfaces/*.class
添加文件
点击Project File,选择ejb-jar.xml
Prefix输入:META-INF
同样方式添加jboss.xml
3.3创建FiboEJB-client.jar
添加Folder:/Fibonacci/bin,Includes:fibonacci/interfaces/*.class
3.4创建FiboWeb.war
添加Folder:/Fibonacci/bin,Includes:fibonacci/web/*.class Prefix:WEB-INF/classes
添加File:/Fibonacci/src/WEB-INF/web.xml,Prefix:WEB-INF
添加File:/Fibonacci/src/WEB-INF/jboss-web.xml,Prefix:WEB-INF
添加File:/Fibonacci/FiboEJB-client.jar,(如果没有列出,可以手动输入),Prefix:WEB-INF/lib
添加Floder:/Fibonacci/docroot
设置完毕,如下图所示:
3.5创建FiboApp.ear
添加File:/Fibonacci/src/META-INF/application.xml,Prefix:META-INF
添加File:/Fibonacci/FiboEJB.jar
添加File:/Fibonacci/FiboWeb.war
创建完毕,如下图所示:
3.6 Run Pakaging
点击项目右键->Run Pakaging,可以看到Console信息:
运行成功,可以在项目中看到生成的包文件:FiboEJB.jar,FiboEJB-client.jar,FiboWeb.war,FiboApp.ear,其中FiboApp.ear为JBoss部署文件,如图:
3.7部署应用
点击项目,右键->Debug AS->Debug
选择应用服务器,本例JBoss4.0.3
添加资源,选择Source->Add->Java Project。
添加完后,点击Debug,可以在Console中看到JBoss启动信息。
启动成功后,点击FiboApp.ear,右键->Deployment->Deploy To
部署成功后可以在Console看到如下图:
部署成功打开IE浏览器,在地址栏输入:http://localhost:8080/fibo,可以看到页面:
点击Compute,操作成功后返回页面:
至此,EJB开发、部署完毕。

4部署描述符文件
4.1 ejb-jar.xml
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">

<description>Fibonacci EJB</description>
<display-name>Generated by XDoclet</display-name>
<enterprise-beans>
<session >
<description>Fibonacci EJB></description>
<display-name>Name for Fibo</display-name>
<ejb-name>Fibo</ejb-name>
<home>fibonacci.interfaces.FiboHome</home>
<remote>fibonacci.interfaces.Fibo</remote>
<ejb-class>fibonacci.ejb.FiboBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor >
</assembly-descriptor>
</ejb-jar>
4.2 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>Fibo</ejb-name>
<jndi-name>ejb/Fibo</jndi-name>
<method-attributes>
</method-attributes>
</session>
</enterprise-beans>
<assembly-descriptor>
</assembly-descriptor>
<resource-managers>
</resource-managers>
</jboss>
4.3 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<distributable/>
<servlet>
<description>Servlet that compute Fibonacci suite</description>
<display-name>Computation Servlet</display-name>
<servlet-name>Compute</servlet-name>
<servlet-class>fibonacci.web.ComputeServlet</servlet-class>
<init-param>
<param-name>A parameter</param-name>
<param-value>A value</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Compute</servlet-name>
<url-pattern>/Compute</url-pattern>
</servlet-mapping>
<ejb-ref >
<ejb-ref-name>ejb/Fibo</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>fibonacci.interfaces.FiboHome</home>
<remote>fibonacci.interfaces.Fibo</remote>
</ejb-ref>
</web-app>
4.4 jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
<jboss-web>
<ejb-ref>
<ejb-ref-name>ejb/Fibo</ejb-ref-name>
<jndi-name>ejb/Fibo</jndi-name>
</ejb-ref>
</jboss-web>
4.3 application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application version="1.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>Sum Application</display-name>
<module>
<ejb>FiboEJB.jar</ejb>
</module>
<module>
<web>
<web-uri>FiboWeb.war</web-uri>
<context-root>/fibo</context-root>
</web>
</module>
</application>
5参考资料
[1] JBossIDE-Tutorial-1.4.1.pdf
[2] JBoss Meets Eclipse: Introducing the JBoss-IDE
http://www.devx.com/opensource/Article/20242/1954?pf=true
[3] Tutorial for building J2EE Applications using JBOSS and ECLIPSE
http://www.tusc.com.au/tutorial/html/chap1.html
[4] http://java.sun.com/xml/ns/j2ee/
[5] http://www.eclipse.org/
[6] http://www.jboss.org/
Oracle EBS Interface/API(42) -AP发票客制化付款申请 背景 在OA系统上,选择Oracle EBS的某张AP发票做付款申请,需要类似于锁定该发票以便付款,其他用户或者下次用户不能再次选择该发票做付款申请。 快速参考 参考点 内容 功能导航 N: AP->Invoices->Entry>Invoices 并发请求 None 基表 AP.AP_INV_SELECTION_CRITERIA_ALLAP.AP_SELECTED_INVOICES_ALL API 参考下面介绍 错误信息表 None 接口Form 阅读详情

相关推荐

jboss7.1-Examples:具有JBOSS 7.1EJB 2

jboss7.1-示 具有JBOSS 7.1 AS示EJB 2,将JBOSS 4迁移到JBOSS 7.1 AS

EJB2+JBOSS】Stateless Bean和Stateful Bean

在学习EJB的时候,wo

Chou_Kakou的专栏 778

参数估计Picard迭代在非线性常微分方程参数估计中的应用研究(Matlab代码实现)

内容概要:本文系统研究了Picard迭代法在非线性常微分方程参数估计中的应用,深入阐述了该方法的数学原理及其在参数辨识中的收敛性与稳定性优势。通过构建最小化误差的目标函数,并结合数值积分技术,采用迭代方式逐步逼近系统的真实参数值,有效解决了非线性动态系统中因缺乏解析解而难以进行精确建模的问题。文中提供了完整的Matlab代码实现,涵盖模型定义、迭代求解、参数更新与结果可视化等关键环节,增强了方法的可操作性与工程实用性。研究通过典型非线性系统案验证了算法的有效性,展示了其在科学计算与工程建模中的良好适应性与推广潜力。; 适合人群:具备常微分方程理论、数值分析基础及Matlab编程能力,从事系统建模、参数辨识、动力学仿真等相关方向的研究生、科研人员和工程技术开发者。; 使用场景及目标:①解决实际工程中非线性微分方程模型的未知参数估计问题;②深入理解Picard迭代法在科学计算中的实现机制与数值特性;③为学术论文复现、科研项目开发或课程设计提供可运行、易调试的技术方案与代码参考。; 阅读建议:建议读者结合文中的数学推导与Matlab代码逐行分析,重点关注迭代流程、目标函数构造与数值积分的耦合实现,通过修改模型结构或噪声条件进行扩展实验,以深化对算法鲁棒性与适用边界的理解。配套资源可通过指定公众号和网盘链接获取,推荐同步学习以加速科研进程。

使用Eclipse3.0+lomboz3.0+jboss3.2.3开发EJB(2)

3.开发一个EJB 做了这么多准备工作,下面我们动手写一个子HelloWorld,选择菜单file-new-other,弹出下面的对话框:   图5 选择Java-Lomboz J2EE Wizards中选择Lomboz J2EE Project,然后点击Next按钮: 图6 在Project name中输入项目名称,然后点击Next按钮, 图7 在图7Librarles选项卡中点击 Add

Piggy and Jery 's GOLB 1268

实战JBOSS――教你写第一个EJB----2

编写第一个EJB:”hello,world”  下面我们正式开始EJB编程。在编写我们的第一个EJB之前,你应该对EJB有一个大致的了解,如果没有的话,建议你先到网上找一些这方面的文章来看,否则你将无法理解下面要讲述的内容。  远程接口  远程接口是指对于客户端而言所能看到了调用接口//HelloWorld.javapackage sample;/*这是一个远程接口,客户端调用这个

myali88的专栏 1838

myeclipse+jboss开发ejb2.x 无状态会话bean

1.创建一个ejb项目名称为ejb2_1,选择j2ee1.4支持ejb2.x 2.创建一个远程接口 [color=darkred] package com.qxm.ejb2; import java.rmi.RemoteException; import javax.ejb.EJBObject; public interface MyRemote extends E...

Keeping 241

JBossIDE Eclispe 开发EJB2.1实例[原创]

EJB2.1开发实例Create by:forevering  2005-10-271.环境配置1)JDK1.5 文件名:jdk-1_5_0_05-windows-i586-p.exe下载地址:https://jsecom16k.sun.com/ECom/EComActionServlet;jsessionid=31A76905496B86DCF9BCFE1CACE798952)编译器采用JBos

高血压的熊 http://blog.csdn.net/foreverkissing 3060

JBossIDE Eclispe 开发EJB2.1实例(zz)

JBossIDE Eclispe 开发EJB2.1实例EJB2.1开发实例Create by:forevering  2005-10-271.环境配置1)JDK1.5 文件名:jdk-1_5_0_05-windows-i586-p.exe下载地址:https://jsecom16k.sun.com/ECom/EComActionServlet;jsessionid=31A769

893

使用links方式安装Eclipse插件

使用links方式安装Eclipse插件Eclispe想必大家都很熟悉了,一般来说,eclipse插件都是安装在plugins目录下。不过这一来,当安装了许多插件之后,eclipse变的很大,最主要的是不便于更新和管理众多插件。用links方式安装eclipse插件,可以解决这个问题。    当前配置XP SP1eclipse3.0.1   现在假设我的eclipse安装目录是D:

空中花园的专栏 814

基于WASCE开发EJB2.1简单Demo

WASCE 全称 WebSphere Application Server Community Edition 是IBM公司开发WebShpere社区版,供用户免费使用,最近移植利用EJB2.1开发的项目用到 WASCE ,因为这方面的文章很少,很多人不了解如何配置和运用,遂把自己的开发过程整理出个简单Demo,供大家开发时借鉴。 开发环境:Eclipse+WASC...

326

JBoss-IDE 1.2.2 教程 3-4

JBoss-IDE 1.2.2 教程 3 JBoss-IDE 1.2.2 教程 3ServletWeb-App只有 EJB 還是不足夠的, 我們要寫一個 Servlet 去使用 EJB 計算斐波納契數列. 在項目中新增一個 class, package 輸入 ‘tutorial.web’ 和名稱輸入為 ‘ComputeServlet. 按下 ‘Browse…’ 在

eako的专栏 1402

EJB2+JBOSS】定时服务

在程序的编写过程中,大家一定遇到过zheynag

Chou_Kakou的专栏 928

jboss4.x下的第一个ejb2.0程序(1)---一个简单的无状态sessionBean

了解这个子的前提是对jboss的熟悉,和对ejb的略微了解。   Hello.jar的文件组织是这的: 1.三个类  com.rox.Hello(SessionBean)    com.rox.HelloHome(EJBHome,接口)    com.rox.HelloWorld(EJBObject,接口) 2.配置文件  META-INF    ejb-jar.xml        jbos...

jackle_liu 197

ejb2.0详细开发过程

Ejb2.开发流程 一、开发环境准备 ①开发工具:myeclipse2013(里面集成了EJB2.0的开发工具) ②jdk:jdk142_08 二、Ejb服务器端的开发 1.1 建立工程 ①EJB Project单击   ②输入工程名称: ejbserver 选择Ejb版本2.0,选择jdk版本1.4,完成后点击下一步   ③选中ejbModule后,点击Remove

1825

Jboss4.x下第一个EJB2.x程序

 EJB的名声很不好,尤其在Spring框架出现以后,而EJB3似乎脱胎换骨了。而我现在学习的仍然是EJB2,原因是EJB3的书很难找。暑假时大概把《精通EJB》和《EJB》这两本书看过一下,现在想复习,加深理解,就从第一个HelloWorld开始。 文件结构: E:.│ build.xml│└─src    ├─META-INF    │      app

剑心博客 1762

嵌入式智能散热系统设计与PID控制优化

在嵌入式系统开发中,热管理是确保设备稳定运行的核心技术。通过温度传感器实时监测结合PID控制算法,可以实现动态精准的散热调节。这种方案在汽车电子、工业控制等场景具有重要价值,能有效降低设备温度波动并提升能效比。以DRV8213电机驱动器和PIC18微控制器构建的智能散热系统为,采用滑动窗口滤波和分段PID策略,实测显示可将温度波动控制在±3℃内,同时相比传统方案节能40%以上。该设计特别适合空间受限且对噪音敏感的应用环境,如汽车座舱电子设备。

weixin_30443731的博客 662

MyEclipse+Jboss下的EJB开发EJB 2.x)

【配置Jboss服务器略】【创建EJB工程】新建一个包 pk ,分别建立 远程接口 Query 、Home接口QueryHome和实现类QueryBean,代码如下:【Query.java】package pk;import java.rmi.RemoteException;import javax.ejb.EJBObject;public interface Quer

xiaozhongzheng的专栏 571

使用yolo11目标检测框架训练简牍文字检测数据集VOCYOLO格式7416张2242类别步骤和流程.md

注意这个只是介绍文档

上一篇: ANT-build.xml文件详解
下一篇: XDoclet基本任务手册
amwayy
博客等级 码龄20年 9粉丝 73原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值