摘要: 最近做了个sso项目,将工作在遇到的问题整理了几个pdf,可惜传不上来,只有帖过来了!
目 录
1. 开发说明 - 3 -
1.1. 开发目的 - 3 -
1.2. 预期读者 - 3 -
1.3. 开发资源 -&n...
阅读全文
posted @
2008-01-07 18:22 sojust 阅读(3349) |
评论 (10) |
编辑 收藏
Lieferay和web项目中整合Liferay CAS server建立SSO,针对4.3版本进行如下操作
1、设置CAS server
首先下载cas-server WAR包,并将cas-web.war文件放入Tomcat's webapps目录下
编辑 tomcat 下的server.xml
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
2、设置CAS client
下载cas-client-2.0.11,放至lib下
3、设置数字签名
在java环境中用使用keytool 进行设置
D:\Java\jdk1.5\bin>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
输入keystore密码: changeit
您的名字与姓氏是什么?
[Unknown]: localhost
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:
CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
[否]: y
keytool -export -alias tomcat -keypass changeit -file %FILE_NAME%
keytool -import -alias tomcat -file %FILE_NAME% -keypass changeit -keystore %JAVA_HOME%/jre/lib/security/cacerts
D:\Java\jdk1.5\bin>keytool -export -alias tomcat -keypass changeit -file c:/server.cart
输入keystore密码: changeit
保存在文件中的认证 <c:/server.cart>
D:\Java\jdk1.5\bin>keytool -import -alias tomcat -file c:/server.cart -keypass changeit -keystore c:/cacerts
输入keystore密码: changeit
Owner: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发照者: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序号: 46d28617
有效期间: Mon Aug 27 16:06:47 CST 2007 至: Sun Nov 25 16:06:47 CST 2007
认证指纹:
MD5: 0E:27:55:74:D0:56:E8:39:B8:0D:58:1E:69:7B:C6:C5
SHA1: AD:7F:90:87:2B:18:99:07:DE:A6:A8:78:90:9F:86:CB:18:A8:67:03
信任这个认证? [否]: y
认证已添加至keystore中
4、设置Liferay Portal
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas-web/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas-web/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serviceUrl</param-name>
<param-value>http://localhost:8080/c/portal/login</param-value>
</init-param>
</filter>
5、test SSO
相关问题汇总:
http://wiki.liferay.com/index.php/Single_SignOn_-_Integrating_Liferay_With_CAS_Server#Instructions_for_Liferay_4.2
posted @
2007-08-27 16:35 sojust 阅读(1779) |
评论 (1) |
编辑 收藏
摘要: 1.
log4j
的配置文件
Log4j
支持两种配置文件格式,一种是
XML
格式的文件,一种是
Java
特性文件
lg4j.properties
(键
=
值)。
...
阅读全文
posted @
2007-03-30 21:51 sojust 阅读(1205) |
评论 (4) |
编辑 收藏
使用Runtime调用bat文件处理外部角本时一般使用 Runtime.getRuntime.exec(command)就可以了
如果批处理是使用db2的db2cmd时,dos窗口则会弹出db2命令窗口执行相关的处理角本,如果需要等特此批处理命令执行完成后再执行下面的流程就会出现相应的问题,如下例流程,将客户端将生成数据备份文件上传至服务器
因waitFor() 只能控制第一个dos窗口的进程,而无法控制下一个窗口,程序则会同步执行,当数据还没生成时就已经进行压缩处理了,当然会出现错误。
所以在执行批处理时将批出理文件隐式执行
实施方法代码如下
/** */
/**
* 执行批处理
*
@param command
*/
public
void
runBat(String command)
{
Process child
=
null
;
try
{
Runtime rt
=
Runtime.getRuntime();
child
=
rt.exec(command);
//以下代码为控制台输出相关的批出理
String line
=
null
;
BufferedReader reader
=
new
BufferedReader(
new
InputStreamReader(child.getInputStream()));
while
((line
=
reader.readLine())
!=
null
)
{
System.out.println(line);
}
reader.close();
//
等待刚刚执行的命令的结束
while
(
true
)
{
if
(child.waitFor()
==
0
)
break
;
}
}
catch
(Exception ex)
{
child.destroy();
ex.printStackTrace();
}
}
主程序如下:
public
void
exportBat(String zipPath)
{
//
执行批处是导出到目录下
this
.runBat(
"
db2cmd -c -w -i exportdb.bat
"
);
//
压缩文件生成打包
this.doZip(zipPath
,zipPath
+"
\\test
.rar"
);
//
上传
this
.ftpUp("目录");
//
删除客户端目录生成的文件
this
.delFile(zipPath
);
}
说明:
1、runBat中执行db2cmd时需加上-c -w -i script
2、dozip,ftpUp,delFile方法省略...
posted @
2007-01-18 21:28 sojust 阅读(3751) |
评论 (2) |
编辑 收藏
在项目开发过程中,客户往往要要将其使用的
excel
存储的数据导入到其它数据库中,下面的工作主要是将
excel
导入各种数据库的汇总
准备:在数据库中创建从
excel
要导入的表结构;
一、
excel
导入
db2
的各种方法
1
:使用文本方式导入
1
)、将
access
导出具有标准格式符的文本文件,例如以逗号分隔的文本文件
2
)、在
db2
的命令行处理器中,连接上数据库,用
import
语句导入,语句如下:
import from table.txt of del modified by coldel
,
insert into table
同理,导出命令:
export to table.txt of del modified by coldel, select * from table
2:使用csv文件 方式导入
1)、把excel文件另存为table.csv文件
2)、在db2的命令行处理器中,连接上数据库,用import 语句导入
import from "d:\table.csv" OF DEL messages "d:\msg.out" INSERT INTO table
二、
excel
导入
oracle
的各种方法
1
、与
db2
导入方法相同
2
、使用
sqlldr
装载数据:
1
)、先把
Excel
另存为
.csv
格式文件,以逗号数据字段分隔的文本文件,如
table.csv
2
)、编写一个
insert.ctl
,用
sqlldr
进行导入
!
insert.ctl
内容如下:
load data
infile 'table.csv'
append into table tableName
fields terminated by ','
(field1,field2,field3,...fieldn)
3
)、执行命令:
sqlldr user/password control=insert.ctl
3
、使用
PL/SQL
如果你的单个文件不大全选
COPY ,
用
PL/SQL Developer
运行
SQL
语句
select * from table for update
或者在左侧树形菜单中选中相应的表格,点击右键,在弹出式菜单中点击
"Edit Data".
然后打开表格数据上方的锁
,
再按一下加号
,
添加一行新空行
.
鼠标点到第一个空格然后粘贴
. COMMIT
即可
.
posted @
2006-11-22 14:04 sojust 阅读(3310) |
评论 (1) |
编辑 收藏
摘要: 好久没写东西了。最近无聊,发点上来!用ajax首先先写一个调用的function一、ajaxFuntion.js
//
定义XMLHttpRequest对象实例
var http_request
=
false
...
阅读全文
posted @
2006-11-09 15:25 sojust 阅读(673) |
评论 (0) |
编辑 收藏
常用的web server JNDI配置方法,以db2为例
一、tomcat部分
1、jndi配置
1.1、5.0版本的jndi配置
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="DS" docBase="ROOT" path="/" workDir="work\Catalina\localhost\ROOT">
<Resource name="DS" type="javax.sql.DataSource"/>
<ResourceParams name="DS">
<parameter>
<name>url</name>
<value>jdbc:db2://127.0.0.1:50000/DateBase</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.ibm.db2.jcc.DB2Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>username</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>500</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
</ResourceParams>
</Context>
1.2、5.5.x版本的jndi配置
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="DS" docBase="ROOT" path="/ROOT" workDir="work\Catalina\localhost\ROOT">
<Resource name="DS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
driverClassName="com.ibm.db2.jcc.DB2Driver"
username="username" password="password"
url="jdbc:db2://127.0.0.1:50000/DateBase"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
* 说明:
1、本例通过jcc方式联接db2
2、5.0以下版本和5.0以上版本对jndi的配置方法不同,5.0以上版本将其变成属性进行配置!
2、spring的配置:
<bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/DS</value>
</property>
</bean>
二、jboss部分
1、将docs\examples\jca下的数据库配置烤至 \server\default\deploy下
如db2的数据源配置db2-ds.xml放至\server\default\deploy下更改
<jndi-name>DS</jndi-name>
<connection-url>jdbc:db2://127.0.0.1:50000/DateBase</connection-url>
<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
<user-name>username</user-name>
<password>password</password>
2、spring的配置:
<bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:DS</value>
</property>
</bean>
三、weblogic部分
1、jndi配置可以启动weblogic的console进行配置
打开 http://127.0.0.1:7001/console
按顺序点击Services ->JDBC ->Connection Pools,然后在右框架中点击链接Configure a new JDBC Connection Pool... ,创建一个新的Pools,从下拉框中选择数据库为informix,再选择驱动,如下图所示:
(麻烦!,以后补上)
点击continue跳到如下详细登记页面,填写相应的字段信息:
Name :JNDI 名称;
DataBase Name:数据库名称;
Host Name:主机名称;
Port: 端口号;
DataBase User Name:数据库用户名;
PassWord: 连接密码;
Confirm PassWord:确认密码;
Informix Server:服务名称;
点击Continue,如下图所示:
再点Test Driver Configuration 测试通过
点击创建和布署(Create and deploy)按钮,成功完成;
2、spring的配置同样不需要前缀
<bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:DS</value>
</property>
</bean>
四、websphere部分
(因websphere被我删除,所以以后补上,:))
posted @
2006-09-28 14:04 sojust 阅读(3019) |
评论 (1) |
编辑 收藏
一、windows下查找数据库服务名及端口号
1 打开windows系统下\system32\drivers\etc目录
2 打开文件services
在其文件中并可查找到informix所建立库的服务名称及端口号如:fx_server 9998/tcp #fx_server
posted @
2006-09-12 23:31 sojust 阅读(202) |
评论 (0) |
编辑 收藏
问题分析:
在编辑
java
文件或运行
web
时会遇到
Unsupported major.minor version 49.0
异常,
48
,
49
是
Java
编译器内部的版本号,
48
表示是用
JDK1.4
来编译运行程序,
49
表示是用
JDK
编译运行程序,报错的原因是运行的
JDK
与编译时的
JDK
版本不同!编译时使用
1.5,
运行使用
1.4
。
查找原因 一:
开发环境下
JDK
的
tools.jar
的版本和
web
布署的的版本不同引起的:
1
、以
tomcat
为例,查找到
tomcat
安装目录下的
common\lib\tools.jar
,用压缩软件打开,察看
META-INF\MANIFEST.MF
,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
可知其版本为
1.5.0
2
、找到开发环境
jdk
的目录下的版本号
dos
命令行中
下运行
java -version
查看版本号,或在配置中找到起作用的那个安装
JDK
目录下,查找
lib\tools.jar
,打开察看
META-INF\MANIFEST.MF
内容否
Created-By: 1.4.2 (Sun Microsystems Inc.)
如果两个版本不同,则抛出如上异常
查找原因 二:
编译环境的问题
如果使用
Eclipse+MyEclipse
开发环境,在以上条件都配置正确的基础上查看
eclipse
使用的
JDK
编译版本。
解决方法分以下三种方式:
1、
将
JDK
下的下的
tools.jar
覆盖到
tomcat\common\lib
下的
tools.jar
,使
tomcat
发布的版本与
JDK
一致;
2、
配置安装
JDK
,使
JDK
版本与
tomcat
本身使用的
JDK
的版本号一至,如修改
JAVA_HOME,PATH,CLASSPATH,Tomcat
使用的
JDK
设置为当前的
tomcat
使用的版本号
3、
如以上方法都设置正确,系统任无法运行,则设置
eclipse
编译设定方法:
Windows->Preferance->Java->Compiler->
页面。将
..JDK Compliance level->Compiler compliance level
调成
1.4
。系统将自动编译成1
.4
说明:
1、使用
JDK5.0
,要求
Tomcat
版本必须不能低于
5.5*
,如果我需要用低于
5.5*
版本的
Tomcat
,将
JDK5.0
的
lib
目录下的
tools.jar
覆盖
TOMCAT
安装目录
/common/lib
下面的
tools.jar,
然后重启
TOMCAT5.0
就可以了
2、如果你选择的是
Eclipse+MyEclipse
开发环境
,
并且你选择的是在
Eclipse
下启动
Tomcat,
要在
windows
菜单
preference
选项弹出的
perference
对话框中
,
选择
MyEclipse--Application Server--Tomcat5---JDK
指定
JDK
的版本号为当前使用的版本号!
posted @
2006-09-10 23:11 sojust 阅读(5227) |
评论 (1) |
编辑 收藏
目的:在 web 中调用 bat 处理数据库
工具: Tomcat ,db2
步骤:
1 、编写 bat 方法处理数据库
run.bat :
db2cmd db2run.bat
%
1
说明: %1 为传入的一个参数
db2run.bat :
db2 connect to database user user using password
说明: db2run.bat 中对数据库进行操作,例中为根据条件创建一视图, 将 bat 放至 Tomcat\bin 下以便程序调用
2 、编写 java 方法调用 run.bat
public
void
runBat(String parm)
{
String command
=
"
run.bat
"
+
parm;
try
{
Process child
=
Runtime.getRuntime().exec(command);
}
catch
(Exception ex)
{
ex.printStackTrace();
}
}
说明: parm 为传入 bat 的参数,子线 程调用此批处理
posted @
2006-09-01 10:30 sojust 阅读(628) |
评论 (0) |
编辑 收藏
今天测试db2的连接方式时遇到两个问题
1、app方式连接
String url = "jdbc:db2:database";
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
Conn = DriverManager.getConnection(url, "username", "password");
问题一:no db2jdbc in java.library.path错误
解决方法:
1、将IBM\SQLLIB\BIN\db2jdbc.dll copy到jdk/bin下
2、使用jcc方式联接
问题二:db2jdbc in java.library.path错误
可能同时有几个联接,可以使用jcc方式连接
2、jcc方式连接
String url = "jdbc:db2://hostname:50000/database";
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
Conn = DriverManager.getConnection(url, "username", "password");
问题一:com.ibm.db2.jcc.b.DisconnectException: encoding not supported异常
解决方法:
版本 udb8.1下用type4时 数据库必须将codeset设置成utf-8 可能是jdk与db2不兼容或是使用IBM的JDK
posted @
2006-08-20 13:41 sojust 阅读(426) |
评论 (0) |
编辑 收藏
摘要: DWR
开发入门
1.
DWR
是做什么的
...
阅读全文
posted @
2006-08-10 10:01 sojust 阅读(540) |
评论 (0) |
编辑 收藏
eclips有很多很好用的快捷键,整理汇总了一下,主要有
1、Alt + / 自动补全代码,如你打入Sys 后按下Alt + / ,eclips会补全System
2、Ctrl+Shift+F 程序按代码格式排版程序
3、Ctrl + F11 启动前一次的run操作
4、Ctrl+Shift+O 自动导入所需的没被加载的类
Ctrl+Shift+M 光标停留在某个未导入的Class时自动import所需的类
5、Ctrl+/ 这个都知道,做批注的
6、Ctrl+F8 这个切换编辑、除错等视景
7、Ctrl+M 切换最大化窗口
8、Ctrl+L 快速跳转到某行
9、Ctrl+K 找下一个
Ctrl+Shift+k往回找
10、Ctrl + shif + R 找文件
11、Ctrl + shif + T 找类
12、Ctrl+O 可以快速切换到其他方法
13、ctrl + 1 当某行出现错误时在光标在该行的时候用自动修正或者给出修改方案
posted @
2006-08-09 11:06 sojust 阅读(213) |
评论 (0) |
编辑 收藏