内存泄露分析插件
http://download.eclipse.org/mat/1.3/update-site/
birt插件
http://download.eclipse.org//birt/update-site/4.3/
**********************************************window、linux安装jdk*******************************************
在Linux系统的 /etc/sysconfig/network-scripts/ifcfg-eth0文件中存放着网卡IP地址配置的相关信息
iptables -L(列出所有规则)
iptables -F(清除所有规则)
/etc/init.d/iptables save(保存)
环境变量配的是C:\j2sdk1.4.2_12,为了不使用该环境变量
tomcat6 jdk1.5
系统环境变量中不配tomcat的CATALINA_HOME:D:\Tomcat5,CATALINA_BASE
使用apache-tomcat-6.0.43在setclasspath.bat中指定jdk如C:\Program Files\Java\jdk1.5.0
set JRE_HOME=C:\Program Files\Java\jdk1.5.0
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0
set JSSE_HOME=C:\Program Files\Java\jdk1.5.0
直接启动startup.bat
catalina.bat中
JAVA_HOME=/app/jdk1.6.0_14-1
JAVA_OPTS="-Xms256m -Xmx1280m -XX:PermSize=64M -XX:MaxPermSize=256M"
CATALINA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=256M"
chmod 755 jdk-6u11-linux-i586.bin
# ./jdk-6u11-linux-i586.bin (注意,这个步骤一定要在jdk-6u11-linux-i586.bin所在目录下)
在按提示输入yes后,jdk被解压。
出现一行字:Do you aggree to the above license terms? [yes or no]
whereis java
which java (java执行路径)
echo $JAVA_HOME(查看环境变量) env(查看系统变量)
echo $PATH
用命令chmod 修改一下bin目录下的.sh权限就可以了
如chmod u+x *.sh
su 切换到到root用户
CRT客户端乱码
怎对当前用户设置java_home: 修该home/xmh下.bash_profile文件(隐藏)
怎对所有用户设置在profile文件末尾加入:
export JAVA_HOME=/home/xmh/java/jdk1.5.0_22
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
如果不想使用环境变量就在setclasspath.sh里设置JAVA_HOME=/home/xmh/java/jdk1.5.0_22
*********************************haier数据库信息,excel 导入oracle**************************************************
imp haier/4321~qwer@ofs1 file=c:\haier.dmp full=y
exp haier/4321~qwer@ofs1 file=c:\haier.dmp tables=(haier_client_temp)
责任人信息表haier_employee:
员工号 employee_number,姓名 employee_name,部门dept,联系电话phone,邮箱email
del_state,reserve2,reserve3
资产信息表haier_asset:
资产编号 asset_number ,使用人工号 user_number ,责任人工号 employee_number ,使用人 user_name ,使用部门 user_dept ,
邮箱 user_email ,电脑类型 computer_type ,型号 computer_model ,主机序列号 computer_sequence ,
电脑名称computer_name,类型type,采购时间 gain_time ,
del_state,reserve2,reserve3
编写input.ctl文件:
load data
infile 'd:\haierWebService\employee.csv'
append into table haier_employee_temp fields terminated by ','
trailing nullcols(employee_number,employee_name,dept,phone,email,del_state,reserve2,reserve3)
load data
infile 'd:\haierWebService\asset.csv'
append into table haier_asset_temp fields terminated by ','
trailing nullcols(asset_number,user_number,employee_number,user_name,user_dept,user_email,computer_type
computer_model,computer_sequence,gain_time,del_state,reserve2,reserve3)
执行命令 sqlldr haier/qwaszx control=d:\\haierWebService\\input.ctl
trailing nullcols 如果excel中对应列为空将插入空
3690
repository path :c:\svn_repository
10.0.66.13 123 C:\svn_repository
file:///C:/svn_repository/dev
svn://132.35.136.43/dev
exp system/manager@TEST file=d:/daochu.dmp full=y
C:\Program Files\Java\jdk1.7.0_71
C:\j2sdk1.4.2_12\bin
*******************************************xFire*******************************************
1,XFire是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。
这种工作方式的转变带来了可观的性能回报,同时节省了内存的占用,对于习惯了Axis、GLUE等这些基于DOM处理模型Web Service框架的开发者来说,
需要一些时间来适应这种转变
2,XFire从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在管道调用的任何一个阶段
XFire都可以添加一些额外的Handler,在对消息进行加工处理后再传入到下一个阶段中, http://img.zdnet.com.cn/0/619/li4htU0cvqDbk.gif
3,在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输(Transport)、预转发(PreDispatch)、转发(Dispatch)、
策略实施(Policy)、用户信息处理(User)、预调用(PreInvoke)、服务调用(Service Invocation)等阶段。当,
Web Service调用后,XFire生成响应SOAP消息并通过管道发送给客户端请求者,这一过程会先后经历调用后(PostInvoke)、用户信息处理(User)、
策略实施(Policy)、传输(Transport)这四个阶段。每一个阶段都是一个可控点,通过编写并注册一些相应的Handler就可以实施一些额外处理逻辑,
如审计、SOAP消息加密、签名、压缩等
4,一个Handler可以看成是XFire的一个加工套件,XFire通过它们定义SOAP发送和接收之前的各种加工处理逻辑。
如Handler可以对SOAP体的内容进行加工处理,或者SOAP头进行处理。可以简单地通过扩展AbstractHandler定义一个自己的Handler类
用机器能阅读的方式提供一个正式的描述文档,WebService描述语言(WSDL)就是这样一个基于XML的语言,用于描述WebService及其函数、参数、返回值。
因为是基于XML的所以WS是机器可阅读的又是人可阅读的,一些最新的开发工具既能根据WebService生产WSDL文档,又能导入WSDL文档,生产调用相应WebService的代码
<!----------------------------------------------WebService----------------------------------------------->正确的jar包 jar包冲突,从lib里删掉 及时编译
SOAP是Web Service的基本通信协议,是一种规范,用来定义SOAP消息的XML格式(XML Format)
Java*有三种Web Service规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。其中JAX-WS(Java API For XML-WebService),
JDK1.6自带的版本为JAX-WS2.1
WSDL: Web 服务描述语言(Web Services Description Language ,WSDL)
wss4j 对密码进行认证,为cxf提供认证访问机制(SOAP信封的Header中包装了<wsse:Security…等元素,元素包括了WS-Seurity的一些信息和设置的用户名和密码)
最普遍的一种说法就是,Web Service = SOAP + HTTP + WSDL。其中,SOAP Simple Object Access Protocol)协议是web service的主体,
它通过HTTP或者SMTP等应用层协议进行通讯,自身使用XML文件来描述程序的函数方法和参数信息,从而完成不同主机的异构系统间的计算服务处理。
这里的WSDL(Web Services Description Language)web 服务描述语言也是一个XML文档,它通过HTTP向公众发布,公告客户端程序关于某个具体的 Web service服务的URL信息、方法的命名,参数,返回值等。
SOAP 指简单对象访问协议,它是一种基于XML的消息通讯格式,用于网络上,不同平台,不同语言的应用程序间的通讯。可自定义,易于扩展。一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
? Envelope 元素,标识XML 文档一条 SOAP 消息
? Header 元素,包含头部信息的XML标签
? Body 元素,包含所有的调用和响应的主体信息的标签
? Fault 元素,错误信息标签
*********************************************cxf定义webservice*****************************************
@WebParam(name = "myname")
针对客户端, Payload: <soap:Envelope ...... 客户端发请求时里面的参数名称,要与接口发布的参数名称相同(SOAP信封的Body中包含)
当服务端接口方法参数定义时,客户端访问时在本端的实体类也必须如此标识
@WebResult(name="returnWord")
定义返回的soap消息节点名称(SOAP信封的Body中包含)
@WebMethod(operationName="toSayHello",action="sayHello",exclude=false)
operationName,action只是wsdl中节点别称,exclude默认为false设置成true时该接口方法失效(wsdl中不显示,即不对外提供该接口)
@SOAPBinding(style=SOAPBinding.Style.RPC)
默认采用document样式,如果您的服务正使用字符串参数来传递或返回 XML 文档,或者它的参数之一是一个具有复杂结构且需要自定义处理的对象,那么文档消息传递就可能是较好的选择
(信息量大采用document)由于采用 RPC 样式的消息传递来编组参数的大部分(如果不是全部的话)实现都是在内存中执行这项操作,所以内存约束可能会使得 RPC 消息传递行不通
@XmlTransient转换成xml时隐藏掉个别属性 @XmlRootElement(name = "CustomerBaseInfo")
*****************************************************window 端口查看********************************************************
netstat 显示协议统计信息和当前 TCP/IP 网络连接。NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a 显示所有连接和监听端口。
1. 查看端口占用 netstat -natplu|grep :8080
在windows命令行窗口下执行:
netstat -aon|findstr "8080" TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448端口“8080”被PID(进程号)为2448的进程占用。
查看端口“8080”被哪个应用占用,,继续执行下面命令:
tasklist|findstr "2448" notepad.exe 2016 Console 0 16,064 K2. 关闭进程
2.1 按进程号关闭进程
taskkill /pid 2152多个时格式为:
taskkill /pid 2152 /pid 12842.2
按进程名关闭进程
如要关闭notepad.exe,格式为:
taskkill /im notepad.exe指定多个时格式为:
taskkill /im notepad.exe /im iexplorer.exe如果是要关闭所有的,则使用通配符*,即:
taskkill /im *.exe2.3 有提示的关闭进程
taskkill /t /im notepad.exe
taskkill /t /pid 2152这个效果是提示后在使用者确定后关闭,有提示框。
2.4 强行终止进程
taskkill /f /im notepad.exe
taskkill /f /pid 21523. 端口状态
3.1 LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
3.2 ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3.3 CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
3.4 TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。
3.5 SYN_SENT状态
SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因。
**************************************************svn服务安装*****************************************************
下载CollabNet Subversion安装,安装过程中需要填入元库地址,本例中为d:/svn_repository
1、建立版本库dev
svnadmin create d:/svn_repository/dev
2、导入项目到版本库
svn import D:/dev file:///d:/svn_repository/dev/ -m "initial import”
3、显示储存库内容
svn list file:///d:/svn_repository/dev/
启动独立服务方式
svnserve –d –r d:/svn_repository/
访问方法:svn://localhost/dev
用户权限控制管理
svnserve独立服务方式
在新建的版本库文件夹dev中,进入conf子文件夹,该文件夹下面有三个文件进行配置。
主配置文件:svnserve.conf
在文件中去除以下内容行开头的注释关键字
#没通过验证,则无任何权限
#anon-access = none
#通过验证,最多可获得写权限
#auth-access = write
#验证文件的位置
#password-db = passwd
#权限配置文件的位置
#authz-db = authz
权限策略文件:authz
#进行权限分组和定义用户
[groups]
group_admin = admin,root
group_ guest = guest
[/]
@group_admin = rw
[/]
@group_ guest = r
用户密码设置文件passwd :
[users]
admin =123
root=345
guest=001
*************************************************oracle用户解锁***************************************************
C:> sqlplus请输入用户名:sys
输入口令:sys as sysdba
//注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。
SQL> alter user scott account unlock;
用户已更改.SQL> commit;
提交完成.
SQL> conn scott/tiger
更改scott口令
新口令:tiger
重新键入新口令:tiger
口令已更改
已连接。
另一种方法:你打开命令提示符,不要登录直接输入下面:
sqlplus sys/tiger as sysdba
以dba方式进入sys帐户;
alter user scott account unlock;
给scott用户解锁;
*****************************************************window.showModalDialog弹框 ****************************************
var sFeatures = "dialogWidth:800px; dialogHeight:600px; dialogLeft:150px; dialogTop:100px;center:yes;help:yes;resizable:yes;status:yes"
var random=Math.random();
var rv = window.showModalDialog('asset.do?optype=showAsset&knowType=A&urirandom='+random+'',window,sFeatures);
if(rv){
var userNumber = rv.userNumber == null ? "":rv.userNumber;
var userName = rv.userName == null ? "":rv.userName;
子页面
rv = {"userNumber":userNumber,"userName":userName,"assetNumber":assetNumber,
"userEmail":userEmail,"computerType":computerType};
window.returnValue = rv;
window.close();
showModalDialog相关属性:
dialogWidth:800px; dialogHeight:600px; dialogLeft:150px; dialogTop:100px;center:yes;help:no;resizable:yes;status:no;minimize:yes;maximize:yes
RMS_STAFF
rm_template 人员
DICT_INDEX
RMS_area
RMS_OFFICE
HAIER_CONTACT_JIGOU
RMS_STAFF_DL
项目中jaxrpc.jar xfire与spring集成造成jar包冲突 java.lang.NoSuchMethodError: javax.xml.namespace.QName
xfire中spring.jar 去掉与项目中spring的jar包冲突
所需jar包
/haier2/WebRoot/WEB-INF/xfire/activation-1.1.jar
/haier2/WebRoot/WEB-INF/xfire/commons-codec-1.3.jar
/haier2/WebRoot/WEB-INF/xfire/commons-httpclient-3.0.jar
/haier2/WebRoot/WEB-INF/xfire/commons-logging.jar
/haier2/WebRoot/WEB-INF/xfire/jdom-1.0.jar
/haier2/WebRoot/WEB-INF/xfire/stax-api-1.0.1.jar
/haier2/WebRoot/WEB-INF/xfire/wsdl4j-1.6.2.jar
/haier2/WebRoot/WEB-INF/xfire/wstx-asl-3.2.7.jar
/haier2/WebRoot/WEB-INF/xfire/xbean-spring-2.8.jar
/haier2/WebRoot/WEB-INF/xfire/xfire-all-1.2.6.jar
/haier2/WebRoot/WEB-INF/xfire/XmlSchema-1.1.jar
海尔信息通信服务支撑系统总结:
1、本次功能开发历经一周需求调研、两周开发、一周内测及联调最后成功上线,3个研发人员
在项目预期时间内按时完成开发任务,并亲自测试联调。
2、本次功能主要有数据实时同步、工单系统资产查询:
其中webservice实现数据实时同步最有技术难度,前期考虑融合到海尔系统中发布接口由于
jdk版本限制及生产环境的特殊性后又改为独立提供服务发布接口,因为此次数据同步夸外网
所以又采取了带有安全认证的接口实现。
工单系统资产查询是在海尔系统上的二次开发,根据该系统已有样式及代码框架设计该资产查询功能,
在新建任务页面实现使用人编号代填到资产查询页面,级联查询出资产和责任人信息后点击资产信息
首列的“选择”自动把资产信息回填到新建任务页面。
在资产信息查询页面实现各个维度及条件的资产和责任人信息查询,支持全部数据的查询和导出
----------------------------tomcat修改虚拟机内存-----------------------------------
. 手动设置MaxPermSize大小 修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),
在Java代码 “echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m
“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m
catalina.sh下为: Java代码
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"
-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m
-verbose:gc -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError