刚接触ejb,今天整了一天ejb3+struts2,折腾死,google也没发现多少实用的demo。发个笔记,也许对初学朋友有些帮助。
将例子简单化,让他们实现结合就好。。。
都说HelloWorld好,我也写个HelloWorld吧。。
1,新建项目
2,将jboss下的client目录所有包都复制到项目lib里(具体需要什么包我还搞不太明白,不管它,就先全部复制过去吧。望指教,谢谢)
3,新建接口类,供客户端调用:
Hello.java
/**
* 远程接口
* @author biaowen
*
*/
public interface Hello {
public String sayHello(String name);
}
4,Hello接口实现类
HelloBean.java
import javax.ejb.Remote;
import javax.ejb.Stateless;
import org.biaowen.service.Hello;
/**
* Hello实现类
* @author biaowen
*
*/
@Stateless
@Remote(Hello.class)
public class HelloBean implements Hello {
public String sayHello(String name) {
return "Hello " + name;
}
}
EJB服务端就完成了,导出jar,部署到jboss里,在控制面板上看到:
HelloBean/remote - EJB3.x Default Remote Business Interface
HelloBean/remote-org.biaowen.service.Hello - EJB3.x Remote Business Interface
就说明服务端部署成功了。。
接下来实现struts2客户端:
1,将struts2所需要包copy到项目lib里。struts2包清单就不贴出来了,需要可直接下载附件。
2,配置web.xml,与ejb没有任何偶合,代码清单:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.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/web-app_2_4.xsd">
<display-name>struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3,struts.xml清单:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.i18n.reload" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.configuration.xml.reload" value="true" />
<constant name="struts.enable.SlashesInActionNames" value="true" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
<constant name="struts.serve.static.browserCache" value="false" />
<package name="default" extends="struts-default">
<action name="hello" class="org.biaowen.struts.action.HelloAction">
<result>hello.jsp</result>
</action>
</package>
</struts>
4,接下来创建action,用于作为EJB客户端,代码如下:
HelloAction.java
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.biaowen.ejb.service.Hello;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
private static final long serialVersionUID = -7799123599902957679L;
// 将信息传递到页面
private String message;
public String execute() {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
Hello hello = null;
try {
InitialContext ctx = new InitialContext(props);
hello = (Hello)ctx.lookup("HelloBean/remote");
} catch (NamingException e) {
e.printStackTrace();
}
message = hello.sayHello("biaowen");
return SUCCESS;
}
public String getMessage() {
return message;
}
}
5,web页面,用来显示返回的helloworld信息:
hello.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>ejb+Struts2整合Demo</title>
</head>
<body>
${message}
</body>
</html>
6,基本完成,不过现在启动运行话会抛异常:
java.lang.NoClassDefFoundError: javax/security/jacc/PolicyContextException
我们还需要一个包javaee.jar,直接从附件获取。(注意:只保留javaee.jar里的javax.security.jacc.*就可以了,否则会和jboss的客户端包冲突,导致页面无法访问,具体那里冲突我也搞不明白。哈)。
ok..在次启动,http://localhost:8080/hello.action 搞定,收工。。。。
附件只包含了struts2包和javaee.jar。其他jboss包自己导入(%JBOSS_HOME%\client)。项目用eclipse可直接恢复。
分享到:
相关推荐
"dwr+ext+struts2+spring+hibernate整合"就是一个典型的例子,它涵盖了前端展示、后端控制、业务逻辑处理、持久层操作等多个层面的技术。下面将分别详细介绍这些技术以及它们在整合中的作用。 1. DWR (Direct Web ...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们的整合应用可以构建出高效、灵活的MVC(Model-View-Controller)架构。在这个"Struts2+Spring+iBatis"的项目中,我们看到的是一个用户登录功能...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的动作控制、依赖注入以及数据库操作。本项目实践旨在深入理解和应用这三大框架的集成,实现数据的增删改查(CRUD)功能。 **Struts...
Struts2、Spring和MyBatis3是Java Web开发中常用的三大开源框架,它们的整合应用可以构建出高效、灵活的MVC(Model-View-Controller)架构。本实例将详细解析这三大框架如何协同工作,提升开发效率,并提供一个基于...
3. 配置Hibernate:在Spring配置文件中,配置Hibernate的SessionFactory,并设置数据库连接信息。同时,需要编写实体类和对应的映射文件(`.hbm.xml`),以便Hibernate能够自动管理数据库表。 4. 配置Struts2:创建...
详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate) 知识点一:SSH三大框架整合概述 SSH三大框架整合是指将Spring、Struts2和Hibernate三个框架进行整合,以便于在JAVAEE项目中实现复杂的业务逻辑。这种...
Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合开发能够构建出高效、可维护性高的Web应用程序。这个范例是一个基于这三个框架的网上拍卖系统,让我们一起深入探讨它们如何协同工作。 **...
拦截器是Struts2的一大特色,它们是一系列在Action执行前后运行的方法,可以实现登录检查、日志记录、事务管理等功能。通过组合不同的拦截器,可以实现复杂的行为控制。 5. **结果类型(Result Types)** 结果...
2. **拦截器**:Struts2的拦截器机制允许开发者在Action执行前后插入自定义逻辑,如权限验证、日志记录等。 3. **OGNL表达式语言**:用于在视图和模型之间传递数据,提供了灵活的数据访问和操作方式。 4. **插件...
2. **强大的拦截器**:拦截器是Struts2的核心组件,可以插入到请求处理流程中,执行如日志记录、权限验证、性能监控等任务,提高了代码的可复用性和可扩展性。 3. **强大的动作映射**:Action是业务逻辑的载体,...
2. **拦截器(Interceptor)**:Struts2的一个重要特性是拦截器,它类似于AOP(面向切面编程)的概念,可以在Action执行前后插入自定义的处理逻辑,如日志记录、权限验证、数据转换等。 3. **配置方式**:Struts2...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,OGNL(Object-Graph Navigation Language)是核心表达式语言,它被广泛用于视图层,尤其是Struts2的标签库。...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Java社区中广泛使用,特别是在构建企业级应用时。标题中的"struts2xml"暗示我们将关注Struts2框架的核心配置文件,即`struts....
JAVA订单管理系统源码ssh框架 strusts2+spring+hibernate 运行环境:Java + mysql 管理员用户名:admin 密码:123 或:123456 或者:1
宿舍管理系统 strusts2 ,用不了可以找我,QQ375308186
Struts2是Apache软件基金会下的一个开源框架,主要用于构建企业级的Java web应用程序。这个"Struts2中文权威手册"应该是全面介绍了Struts2框架的使用、配置、设计原理及其在开发过程中的最佳实践,旨在帮助中国...
3. 配置web.xml,设置Struts2和Spring的前端控制器。 4. 创建Spring的配置文件(如applicationContext.xml),配置Bean及依赖注入。 5. 配置Struts2的配置文件(struts.xml),定义Action和结果。 6. 配置Hibernate...
在Struts2中,开发者可以利用拦截器(Interceptor)机制来处理请求,这些拦截器可以实现如认证、授权、日志记录等功能,极大地提高了代码的可复用性和可维护性。 课程可能会涵盖以下几个重要的知识点: 1. **...
**Eclipse的Struts插件**是开发Java Web应用程序的重要工具,特别对于使用Struts2框架的项目来说,它提供了一整套集成开发环境(IDE)功能,帮助开发者提高效率和代码质量。这款插件主要面向那些使用Eclipse作为开发...
尽管Struts1的核心版本不包含拦截器,但社区开发的Struts-Plugin提供了Interceptor功能,类似于Spring MVC的拦截器,用于在Action执行前后进行额外的操作,如权限验证、日志记录等。 **7. 结合其他技术** Struts1常...