Intellij Idea 创建EJB项目入门(一)

原文:Intellij Idea 创建EJB项目入门(一)

相关软件:

1、JBoss(jboss-as-7.1.1.Final):http://jbossas.jboss.org/downloads

2、Intellij IDEA 13.02

3、JDK 1.7

4、Tomcat 6

 

1)首先下载JBossAS,解压到C盘,如C:\jboss-as-7.1.1.Final。

2)安装JBossas,可以参考:http://jingyan.baidu.com/article/15622f247f1607fdfcbea5b2.html

3)安装完成后,在Idea中对JBoss进行热部署,可以参考:

http://blog.csdn.net/z_dendy/article/details/42296385

 

====================================================================

1、新建一个项目,即作业空间:

项目名称为j2ee_ejb,项目类型为简单的Java,Next,Finish。

 

2、点击项目名,右键 New -> Module -> 输入模块名为EBJTest -> 点击“Next” -> 选择“Web Application” 和“EJB:Enterprise Java Bean(3.2)” -> Finish:

勾“Create ejb-jar.xml”,选择Download。

 

3、创建一个接口:HelloWorld

注意标注@Remote

package com.ejb;

import javax.ejb.Remote;

/**
 * Created by gao on 16-3-27.
 */
@Remote
public interface HelloWorld {
    public String sayHello(String world);
}

 

4、创建一个无状态Bean,右击src,New -> Stateless Session Bean。

 

输入名称为HelloWorld。

 

实现HelloWorld接口,完成编程:

package com.ejb;
import javax.ejb.Stateless;
/**
 * Created by gao on 16-3-27.
 */
@Stateless(name = "HelloWorldEJB")
public class HelloWorldBean implements HelloWorld {
    public HelloWorldBean() {
    }
    @Override
    public String sayHello(String world) {
        return "Hello " + world + "!";
    }
}

 

5、部署JBoss,选择JBoss -> Local

 

弹出Run/Debug Configuration,输入Name为ejbtest,然后选择Deployment:

 

 

选择右边的“+”号,选择“EJBTest:war exploded”,发现下面出现一行红色字,为出错:

 

点“Fix”,弹出Project Structure:

 

只需要将Output directory的目录最后以.war结尾即可。

 

6、运行JBoss,成功部署,并生成war文件。

 

 

 此时JBoss被成功启动,浏览器输入:http://localhost:8080可以看到以下界面。

 

 

其实这时候JBoss服务器端的代码就已经部署成功的了,如果你不想用IDEA部署的话,可以关闭IDEA 中的JBoss,将刚刚生成的war文件复制到JBoss安装目录中的statndalone\deployments,

即C:\jboss-as-7.1.1.Final\standalone\deployments,当启动JBoss时,它会自动加载里面的项目文件。启动JBoss,点击C:\jboss-as-7.1.1.Final\bin下的standalone.dat文件。

 

7、编写Java类进行测试——HelloWorldClient.java

 

注意:JBOSS 6,7调用通过JNDI查找EJB的方法和JBOSS5不一样

所以可以先好好参考一些文章:

http://www.aichengxu.com/view/1730590

http://share.zhbor.com/article/18176.html

http://weli.iteye.com/blog/1282169

http://www.micmiu.com/j2ee/ejb/eclipse-jboss-ejb-demo/

http://blog.csdn.net/xiaokui_wingfly/article/details/8729086

http://blog.csdn.net/zjtyxy2007/article/details/9952095

http://blog.csdn.net/zhanglu_king/article/details/12251279

http://www.cnblogs.com/yjmyzz/p/intellij-idea-13-getting-started.html

 

 

1)我本来是在一个新的Project中建立Java类测试的,但是后来发现在和EJB Module同一个Project下也是可以的,所以我就在刚刚新建的项目j2ee_ejb中新建一个Module。

点击项目名j2ee_ejb,右键 -> New -> Module -> 选择Java -> 输入Module名称“EJBTestJava” -> Next -> Finish。

 

 

2)在Module下新建一个文件夹lib,复制粘贴两个jar包,一个是从刚刚生成的EJB文件中,将javax.ejb-api.jar复制进来,另外一个是从JBoss安装路径中,即从C:\jboss-as-7.1.1.Final\bin\client目录中复制jboss-client.jar。

 

3)新建一个接口HelloWorld,即和EJB项目中的接口一样,包括包名:

package com.ejb;
import javax.ejb.Remote;
/**
 * Created by gao on 16-3-28.
 */
@Remote
public interface HelloWorld {
    public String sayHello(String world);
}

 

4)新建一个测试类

import com.ejb.HelloWorld;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;
public class HelloWorldClient {
    public static void main(String[] args) throws NamingException {
//        Properties props = new Properties();
//        props.setProperty("java.naming.factory.initial",
//                "org.jnp.interfaces.NamingContextFactory");
//        props.setProperty("java.naming.provider.url", "localhost:1099");
//        props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
//        try {
//            InitialContext ctx = new InitialContext(props);
//            HelloWorldRemote helloworld = (HelloWorldRemote) ctx
//                    .lookup("HelloWorld/remote");
//            System.out.println(helloworld.sayHello("World"));
//            System.out.println(helloworld.sayHello("China"));
//        } catch (NamingException e) {
//            e.printStackTrace();
//        }
        HelloWorld helloWorld = lookupRemoteStatelessEjbBean();
        System.out.println(helloWorld);
        String s = helloWorld.sayHello("world");
        System.out.println(s);
    }
    private static HelloWorld lookupRemoteStatelessEjbBean() throws NamingException {
        final Hashtable jndiProperties = new Hashtable();
        jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
        final Context context = new InitialContext(jndiProperties);
        final String appName = "";
        final String moduleName = "EJBTest_war_exploded";
        final String distinctName = "";
        final String beanName = "HelloWorldEJB";
        final String viewClassName = HelloWorld.class.getName();
        final String namespace = "ejb:" + appName + "/" + moduleName
                + "/" + distinctName + "/" + beanName + "!" + viewClassName;
        System.out.println(namespace);
        return (HelloWorld) context.lookup(namespace);
        /*
           return (RemoteCounter) context.lookup("ejb:" + appName + "/" + moduleName
            + "/" + distinctName + "/" + beanName + "!" + viewClassName + "?stateful");
        */
    }
 }

 

注意:注释掉的是JBoss5之前的访问模式,可以对比一下。

 

5)在src路径下新建一个文件:jboss-ejb-client.properties,注意最后的username和password换上你在安装JBoss时新建的用户名和密码。

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=yang
remote.connection.default.password=123456

 

6)项目目录:

 

7)运行测试。注意,这时JBoss是已经启动的了,你可以在IDEA启动,也可以用JBoss的命令启动。

直接点击HelloWorldClient类名,右键,选择Run "HelloWorldClient... "即可。

 

运行结束后可在控制台中看到以下输出:

 

 

 

 

 

 

 

 

 

 

 

 

 

时间: 2024-11-03 19:23:33

Intellij Idea 创建EJB项目入门(一)的相关文章

Intellij Idea 创建Web项目入门(一)

原文:Intellij Idea 创建Web项目入门(一) 相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.baidu.com/s/1dEstJ5f Tomcat(apache-tomcat-6.0.43):http://pan.baidu.com/s/1kUwReQF   Intellij Idea的安装非常简单,一步一步安装即可. JDK的安装也挺简单的,重要的是配置环境.在环境变量Path里面添上J

JavaEE——Intellij Idea 创建JavaWeb项目

原文:JavaEE--Intellij Idea 创建JavaWeb项目 折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运行,总是 Error on Apache Tomcat: The requested resource is not available  坑爹!!!!. 首先我要说一点,在IntelliJ IDEA里面"new Project"就相当于我们eclipse的"workspace&

eclipse3.4(ganymede版) 创建ejb项目问题

问题描述 创建ejbproject后ejb-jar.jar文件报错"AnEJBmodulemustcontainoneormoreenterprisebeans."然后在创建SessionBean中EJBproject下拉框是空没有刚创建的ejbproject?不知道为什么?请高手指点?谢谢! 解决方案 解决方案二:解决方案:这是正常的.Theprojectmustcontainatleastonebean.该项目必须至少包含一个bean.SincenewEmbeddedTransac

【IDEA】向IntelliJ IDEA创建的项目导入Jar包的两种方式

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 今天用IDEA,需要导入一个Jar包,因为以前都是用eclipse的,所以对这个idea还不怎么上手,连打个Jar包都是谷歌了一下. 但是发现网上谷歌到的做法一般都是去File –> Project Structure中去设置,有没有如同eclipse一样简便的右键添加方法呢. 然后自己摸索了一下,找到了. 以阿里大于的依赖包为例子,因为正好是我遇到要导入的Jar包. 先说下第一种

IntelliJ IDEA 17 创建maven项目

说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 17创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea17使用maven创建web工程(此文章描述了用模板创建Maven的弊端.) 创建一个新Maven项目 new 一个project 不选择任何Maven模板 起个GroupId.ArifactId 起个项目名.注意:Idea_Project是存放此项目的工作区间,mavenDemo_idea15为存放此项目的子目录. 建好项目后,打开,

【SSRS】入门篇(一) -- 创建SSRS项目

原文:[SSRS]入门篇(一) -- 创建SSRS项目   在本篇中,您将学习如何在 SQL Server Data Tools (SSDT) 中创建报表服务器项目.  报表服务器项目用于创建在报表服务器中运行的报表.   1.单击"开始 --> 所有程序 --> Microsoft SQL Server 2012 ,然后单击"SQL Server Data Tools": 打开SQL Data Tools的界面如下: 2.在"文件"菜单上,指

IntelliJ IDEA 12 创建Web项目 教程 超详细版

原文:IntelliJ IDEA 12 创建Web项目 教程 超详细版 IntelliJ IDEA 12 新版本发布 第一时间去官网看了下  黑色的主题 很给力 大体使用了下  对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走在路上 ... 首先要说一点,在IntelliJ IDEA里面"new Project" 就相当于我们eclipse的"workspace",而"new Module"才是创建一

IntelliJ IDEA 15 创建maven项目

原文:IntelliJ IDEA 15 创建maven项目 说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此文章描述了用模板创建Maven的弊端.) 创建一个新Maven项目 new 一个project 不选择任何Maven模板 起个GroupId.ArifactId 起个项目名.注意:Idea_Project是存放此项目的工作区间,mavenD

intellij每次创建项目加入框架是就会先从网上搜索,怎么配置默认是use library

问题描述 intellij每次创建项目加入框架是就会先从网上搜索,怎么配置默认是use library 比如加入struts2框架,他就是默认的先到网上搜索,能不能直接就让它默认use library.还有就是如果先创建了一个web项目然后在添加struts2在添加框架中怎么不见struts2呢? 解决方案 你也可以下载好一个放在本地,然后设置use library这个即可.