使用技术:
CognosSDK,Servlet,JQuery(JS)
由于只是自己的测试整个框架搭的比较粗糙,下面是主要的实现步骤
1:搭建测试环境,Cognos配置了SunOne,取消匿名登录,在MyEclipse中新建一个web工程,引入SDK所需的jar包(在SDK安装目录下),导入jquery(js)文件
2:开发登录页面login.jsp
页面核心内容为:
method="post" name="form1">
用户名:
密码:
3:开发servlet类SDKCognosLogin.java
public class SDKCognosLogin extends HttpServlet {
private static final long serialVersionUID = 1L;
private CRNConnect connect=new CRNConnect(); @Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException {
String username=req.getParameter("username");
String password=req.getParameter("password");
if(connect.logon("SunOne", username, password)){
System.out.println("cognos 登录成功!!!");
System.out.println("获取passport中。。。");
BiBusHeader bibus = null;
SOAPHeaderElement x = ((Stub) connect.getCmService()).getResponseHeader(
"http://developer.cognos.com/schemas/bibus/3/", "biBusHeader");
bibus = BIBusHeaderHelper.getHeaderObject(x, true, "");
String passport=bibus.getCAM().getCAMPassport().getId();
System.out.println("passport:"+passport);
try {
req.getRequestDispatcher("../welcome1.jsp?m_passportID="+passport+"").forward(req,resp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
} @Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
}
}3: 配置web.xml
sdkcognosLogin
com.portal.SDKCognosLogin
sdkcognosLogin
/servlet/loginServlet
4:后台登录Cognos页面实现登录welcome1.jsp
welcome!!!
name="m_passportID" id="m_passportID"/>
5:登录Cognos首页,这时可以发现,没有弹出登录页面了
其中 CRNConnect.java,BIBusHeaderHelper.java类似为SDK样例中的两个类(附件中为这两个类)6:操作截图
附件:
Desktop.zip (2.74 KB)