📄 serviceinvokercenter.java
字号:
package net.s3o.core.service;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.s3o.core.S3OCoreModel;
import org.springframework.util.StringUtils;
import com.caucho.services.server.ServiceContext;
public class ServiceInvokerCenter {
private HashMap serviceInvokers=null;
public ServiceInvoker getSerivecInvoker(String serviceName){
if (serviceInvokers==null) return null;
return (ServiceInvoker)serviceInvokers.get(serviceName);
}
public String getServiceName(HttpServletRequest request){
String requestURI=request.getRequestURI();
String webPath=request.getContextPath();
String sP=webPath+S3OCoreModel.getServiceRequestPrefix()+"/";
// String queryString=request.getQueryString();
// String[] rs=StringUtils.split(queryString+"&", "&");
// return rs!=null&&rs.length>0?rs[0]:null;
return StringUtils.replace(requestURI, sP, "");
}
public void invokeService(HttpServletRequest request,
HttpServletResponse response,ServiceInvoker invoker) throws IOException, ServletException {
if (invoker == null) {
// res.setStatus(500, "Hessian Requires POST");
response.sendError(500, "WRONG REQUIRES");
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.println("<h1>WRONG SERVICE CALL</h1>");
return;
}
String serviceId = request.getPathInfo();
String objectId = request.getParameter("id");
objectId = objectId == null ? request.getParameter("ejbid") : objectId;
ServiceContext.begin(request, serviceId, objectId);
try {
InputStream is = request.getInputStream();
OutputStream os = response.getOutputStream();
invoker.invok(is, os, objectId);
} catch (Throwable e) {
throw new ServletException(e);
} finally {
ServiceContext.end();
}
}
public HashMap getServiceInvokers() {
return serviceInvokers;
}
public void setServiceInvokers(HashMap serviceInvokers) {
this.serviceInvokers = serviceInvokers;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -