用Servlet写了个BO单点登录 但是死在了IEnterpriseSession enterpriseSession获取参数的地方 求解!!!!!
张远_ 2018-04-11 04:32:36
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.crystaldecisions.sdk.framework.CrystalEnterprise;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import com.crystaldecisions.sdk.framework.ISessionMgr;
import com.crystaldecisions.sdk.occa.security.ILogonTokenMgr;
public class Bo extends HttpServlet {
/**
* 登录BO系统
*
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println("session====="+session);
System.out.println("session====="+session);
out.println("Init=====");
try {
String cms = "********:6400";
String username = request.getParameter("uid");
String password = request.getParameter("pwd");
String reportID = request.getParameter("rid");
String auth = "secEnterprise";
if(username==null||password==null||reportID==null){
return;
}
out.println("username======="+username);
out.println("password======="+password);
out.println("reportID======="+reportID);
ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
IEnterpriseSession enterpriseSession = sessionMgr.logon(username, password, cms, auth);
out.println("LoginOK=======");
ILogonTokenMgr token = enterpriseSession.getLogonTokenMgr();
String URLrequest = "http://**********:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sWindow=Same&isApplication=true&iDocID="+reportID+"token="+token;
response.sendRedirect(URLrequest);
out.println("ObtainOK=======");
} catch (Exception e) {
response.getWriter().write(e.getMessage());
StackTraceElement[] stackTrace = e.getStackTrace();
for (StackTraceElement stackTraceElement : stackTrace) {
response.getWriter().write(stackTraceElement.toString() + "\r\n");
}
}
}
}
IEnterpriseSession enterpriseSession = sessionMgr.logon(username, password, cms, auth);这句话有了问题,搞不定了
下面是完全的报错日志(问号我也不懂是哪里打出的):
session=====org.apache.catalina.session.StandardSessionFacade@29a7789c
Init=====
username=======hanabi
password=======1234Abcd
reportID=======333
?????
com.crystaldecisions.sdk.exception.SDKServerException.map(SDKServerException.java:99)
com.crystaldecisions.sdk.exception.SDKException.map(SDKException.java:124)
com.crystaldecisions.sdk.occa.security.internal.ConfidentialChannelService.createConfidentialChannel(ConfidentialChannelService.java:150)
com.crystaldecisions.sdk.occa.security.internal.CCMap.locateCCItem(CCMap.java:63)
com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:855)
com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:815)
com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:211)
com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:177)
com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:454)
com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:512)
com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)
test.Bo.doGet(Bo.java:44)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:617)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:876)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:618)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1790)
java.lang.Thread.run(Thread.java:619)