用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)

...全文
746 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
张远_ 2018-04-11
  • 打赏
  • 举报
回复
引用 1 楼 mj280824108 的回复:
首先确认下ping地址看能不能通,排除网络问题,然后再单独登录一下。最后token的是有有效期的,看看是不是这个问题。把token设置为一天试试。
很无奈
张远_ 2018-04-11
  • 打赏
  • 举报
回复
ping过的 是可用的 这段代码的意思就是 在网页上调用这个代码 通过在地址栏填写参数重定向到一个新的页面 现在的问题是调用这段代码的时候 在入参的地方出现了问题 但是以前项目组有写通的(BO单点登录) 但是是在一个挂在了一个系统下面 我把他们以前写的扣出来 单独运行 也是这种问题。 所以我就没有办法 现在 1 要么这代码是错的 2服务器没有配置好 3我用的jar包扣的是以前的那个系统上的 单列出来就错了 他们改了 jar包 所以 我现在困难的是 不知道是哪一方面的错 为什么在登录的时候就错了 如果错按照逻辑来讲 也应该是重定向 因为这些方法全是调用的源码 谢谢参考
Enchanter, 2018-04-11
  • 打赏
  • 举报
回复
首先确认下ping地址看能不能通,排除网络问题,然后再单独登录一下。最后token的是有有效期的,看看是不是这个问题。把token设置为一天试试。
内容概要:本文系统研究了虚拟同步发电机(VSG)在并网过程中的惯量-阻尼协同自适应控制策略,结合Simulink仿真与Matlab代码实现,深入探讨其对电网频率稳定的支撑作用。研究内容涵盖VSG的基本建模、双机并联条件下的功率精确分配、微电网黑启动过程、预同步控制技术、虚拟阻抗的引入及其对系统稳定性的影响,并通过根轨迹分析、调节系数对比等方法验证所提控制策略的有效性与鲁棒性。该工作为高比例新能源接入背景下的电力系统提供了增强惯性响应和动态稳定性的解决方案,并构建了一个完整的仿真验证平台。; 适合人群:具备电力系统分析、自动控制理论基础,熟悉Matlab/Simulink仿真环境,从事新能源并网、微电网控制、电力电子变换器控制及电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握虚拟同步发电机的核心运行机理与控制建模方法;② 实现VSG在并网、孤岛切换、黑启动等典型工况下的协同控制仿真;③ 分析惯量与阻尼自适应调控对系统频率动态响应的优化效果;④ 为相关课题研究、高水平论文复现或实际工程项目提供可扩展的仿真模型与技术支持。; 阅读建议:建议结合文中提供的Matlab代码与Simulink模型,逐步搭建仿真系统,重点理解控制策略的设计逻辑与参数整定方法,并通过改变负载扰动、并网时机、控制器增益等工况进行对比仿真,深入掌握系统稳定性分析的关键技术与优化路径。
内容概要:本文档是PCI-SIG发布的工程变更通知(ECN),针对PCI Express Base Specification 3.1版本中的数据链路层包(DLLP)编码进行两项维护性更新。主要变更包括定义一种新的NOP DLLP(无操作数据链路层包),以支持未来硬件发送端的实现优化,并将所有已分配的DLLP类型编码统一整理至规范中的单一表格(Table 3-1),提升文档一致性与可维护性。接收端被要求在不采取任何动作的情况下丢弃NOP DLLP,且该包可携带24位任意负载用于调试或日志记录。文档明确指出此次变更不涉及硬件或软件的功能性改动,对现有系统几乎无影响。; 适合人群:从事PCI Express协议开发、验证的硬件工程师、固件开发者及测试工程师,具备一定高速接口协议基础的技术人员;; 使用场景及目标:①帮助开发人员理解DLLP编码机制及未来硬件优化方向;②为测试规范提供依据,如建议更新Link Test Specification以明确未定义编码测试用例的具体编码选择;③指导协议一致性验证过程中对非法或特殊DLLP的处理行为;; 阅读建议:此资源属于标准修订类技术文档,建议结合PCI Express Base Specification 3.1及相关测试规范对照阅读,重点关注Table 3-1的更新、新增的NOP DLLP格式图(Figure 3-10a)及其在链路层处理流程中的定位,便于准确理解和实施协议要求。
内容概要:本文系统研究了在fs>fr条件下,移相混合控制LLC谐振变换器在低压增益工况下的工作特性,重点探讨变频与移相结合控制策略下的模态切换规律、损耗分布特征及电压增益能力。通过Simulink搭建精确仿真模型,对变换器在不同负载与频率条件下的动态响应、软开关实现情况及能量转换效率进行深入分析,揭示了混合控制机制在拓宽增益范围、优化轻载效率方面的优势,为高频高效电源设计提供了理论依据与仿真验证支持。; 适合人群:具备电力电子与电力系统基础知识,从事开关电源、DC-DC变换器、谐振变换器拓扑研究或新能源变换系统开发的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握LLC谐振变换器在超谐振频率(fs>fr)下的混合控制机理与模态演变规律;②通过仿真分析优化低压输出时的控制参数,提升变换器在宽负载范围内的效率与稳定性;③为实际工程中高频高效电源的设计与性能提升提供仿真验证方法与理论指导; 阅读建议:建议结合文中Simulink仿真模型进行同步操作,重点关注变频与移相控制的协同作用边界、关键波形(如谐振电流、电压增益曲线)的演化趋势,并结合相关文献深化对ZVS/ZCS软开关条件和谐振腔能量传递特性的理解。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧