您的位置:首页 > 其它

jboss as7 访问ejb通用类

2015-09-15 16:15 302 查看
package com.synnex.ejb.util;

import java.util.Properties;

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

public class EjbUtil {
private static Context initialContext;

private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming";

private static Context getInitialContext() throws NamingException{
if(initialContext == null){
Properties prop = new Properties();
prop.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);

initialContext = new InitialContext(prop);
}

return initialContext;
}

public static Object lookup(String jndi) throws Exception{
return getInitialContext().lookup(jndi);
}

private static Object lookup(Class<?> serviceClass, String moduleName, String beanName) throws Exception {
final String appName = "";			//ear包的名字,如果没有ear包,那么这个就是空字符串就行
final String distinctName = "";

final String interfaceName = serviceClass.getName();

String jndi = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName;

System.out.println("JNDI: " + jndi);

return getInitialContext().lookup(jndi);
}

public static Object lookupRemoteBizService(Class<?> serviceClass, String moduleName) throws Exception{
String beanName = serviceClass.getSimpleName().replace("Remote", "");
return lookup(serviceClass, moduleName, beanName);
}
}

调用DEMO

package com.synnex.servlet;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hua.ejb.LoginBeanRemote;
import com.synnex.ejb.util.EjbUtil;

/**
* Servlet implementation class TestRemoteEJB
*/
@WebServlet("/TestRemoteEJB")
public class TestRemoteEJB extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public TestRemoteEJB() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-type", "text/html;charset=UTF-8");
//这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
response.setCharacterEncoding("UTF-8");

try {
LoginBeanRemote loginBean = (LoginBeanRemote)EjbUtil.lookupRemoteBizService(LoginBeanRemote.class, "MyEJBServer");
String str = loginBean.login("ejb", "123456");
String str1 = loginBean.login("ejb", "qwerty");
request.setCharacterEncoding("utf-8");
System.out.println(str);
System.out.println(str1);
OutputStream ps = response.getOutputStream();
//这句话的意思,使得放入流的数据是utf8格式
ps.write(str.getBytes("UTF-8"));
ps.write("<br>".getBytes("UTF-8"));
ps.write(str1.getBytes("UTF-8"));
//			response.getWriter().write(str);
//			response.getWriter().write("<br>");
//			response.getWriter().write(str1);
response.getWriter().flush();
} catch (Exception e) {
e.printStackTrace();
}
}

}


以上代码来自网络
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: