标签归档:eclipse

EJB3.1+JBoss7.1+Eclipse3.7入门HelloWorld

EJB3.1 JBoss7.1 Eclipse3.7

——Hello World

一、环境配置:

JDK:正常配置

Eclipse:正常下载,解压(V3.7)

JBoss:正常下载,解压(V7.1)

二、JBoss Tools安装

在Eclipse里面安装JBoss Tools3.3

1、【Help】——>【Install New Software】——>【Add】

输入:

Name: JBossTools

Location: http://download.jboss.org/jbosstools/updates/development/indigo/

 

——>【OK】——>【Select All】——>【Next】

——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】

 

 

2、【Help】——>【Install New Software】——>【Add】

输入:

Name: JBossTools Aop

Location: http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/

——>【OK】——>【Select All】——>【Next】

——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】

三、Eclipse里面配置JBoss

【File】——>【New】——>【Other】

(找到Server,并且选择)——>【Next】

(找到JBoss Community,选择JBoss AS 7.1)——>【Next】

(找到Home Directory)——>【Browse…】——>

(选择JBoss解压的位置,即JBoss Home)——>

(找到JRE,选择你安装的JRE)——>【Next】

——>【Next】——>【Finish】

 

以上步骤完毕后,在Servers视图内会有JBoss服务器出现。

点击该视图内的启动按钮,JBoss服务器开始启动

浏览器可以访问http://127.0.0.1:8080/,就算配置成功。

四、第一个EJB工程

【File】——>【New】——>【Other】

(找到EJB,并且选择EJB Project)——>【Next】

输入:

Project name:TestEJB

Target runtime:选择JBoss7.1

EJB module version:选择3.1

——>【Next】——>【Next】

(选择Generate ejb-jar.xml deployment descriptor)

——>【Finish】

 

生成的目录结构中,ejbModule目录为我们要写JAVA源代码的目录。

即EJB写在这里。

在ejbModule目录上右键【New】——>【Other】

(找到EJB,并且选择Session Bean(EJB 3.x))——>【Next】

输入:包名(com.ejb)、EJB类名(HelloWorld),

State type部分:选择Stateless

然后选择Remote  ——>【Finish】

自动生成代码如下:

 

package com.ejb;

 

import javax.ejb.Remote;

 

@Remote

public interface HelloWorldRemote {

}

 

 

 

 

package com.ejb;

 

import javax.ejb.LocalBean;

import javax.ejb.Stateless;

 

/**

* Session Bean implementation class HelloWorld

*/

@Stateless

@LocalBean

public class HelloWorld implements HelloWorldRemote {

 

/**

* Default constructor.

*/

public HelloWorld() {

// TODO Auto-generated constructor stub

}

}

 

 

 

在接口里面增加以下方法

 

public String sayHello(String name);

 

 

类里面实现该方法

 

public String sayHello(String name){

return “Hello ” + name + “!”;

}

 

 

 

五、部署EJB

在工程上右键——>【Export】——>【EJB JAR file】

在Destination处:——>【Browse…】——>

选择JBoss服务器的部署目录,我的目录如下:

 

D:eclipse-jbossjboss-as-7.1.1.FinalstandalonedeploymentsTestEJB.jar

 

然后——>【Finish】

 

在Console视图会出现详细部署信息

六、客户端代码

1、新建一个普通Java Project工程:

2、加入JBOSS运行库,及jbossbinclient下的jboss-client.jar包

3、把EJB的接口拷贝到该工程内:

4、新建一个客户端类:类名(ClientTest)

代码如下:

 

import java.util.Hashtable;

 

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

 

import com.ejb.HelloWorldRemote;

 

 

public class ClientTest {

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Hashtable<String, String> jndiProperties = new Hashtable<String, String>();

jndiProperties.put(Context.URL_PKG_PREFIXES, “org.jboss.ejb.client.naming”);

try {

Context context = new InitialContext(jndiProperties);

final String appName = “”;

final String moduleName = “TestEJB”;

final String distinctName = “”;

Object obj = context.lookup(“ejb:” + appName + “/” + moduleName + “/” + distinctName + “/HelloWorld!com.ejb.HelloWorldRemote”);

HelloWorldRemote hwr =

(HelloWorldRemote)obj;

String say = hwr.sayHello(“World”);

System.out.println(say);

} catch (NamingException e) {

e.printStackTrace();

}

}

 

}

 

 

 

5、在classPath下增加“jboss-ejb-client.properties”文件,内容如下

 

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

 

 

6、运行该客户端,有如下结果:

 

Hello World!

ubuntu中eclipse中文乱码问题

首先先让Ubuntu支持GBK,方法如下:

1.
修改/var/lib/locales/supported.d/local文件,在文件中添加
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
2.
sudo dpkg-reconfigure –force locales
然后在输出的结果中会出现
zh_CN.GB2312 done
zh_CN.GBK done

这样, Ubuntu就支持GBK编码了, 下面设置eclipse。
首先Windows->Preferences, 然后选择General下面的Workspace. Text file encoding选择Other GBK, 如果没有GBK的选项, 没关系, 直接输入GBK三个字母, Apply, GBK编码的中文, 已经不是乱码了