2012年4月27日 星期五

[Java]Web Service 取得 Client IP


一、基於xfire發布的webservice獲取客戶端ip的方法
public String getClientIp(){String ip = "";try {HttpServletRequest request = XFireServletController.getRequest();ip = request.getRemoteAddr();System.out.println("客戶端ip=:"+ip);} catch (Exception e) {System.out.println("無法獲取HttpServletRequest.");e.printStackTrace();}return ip;}


二、基於axis發布的webservice獲取客戶端ip的方法
public String getClientIpAxis() {
MessageContext mc = null;
HttpServletRequest request = null;
try {
mc = MessageContext.getCurrentMessageContext();
if (mc == null)
throw new Exception(“無法獲取到MessageContext”);
request = (HttpServletRequest) mc
.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
System.out.println(“remote ip: ” + request.getRemoteAddr());
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return request.getRemoteAddr();
}

三、基於jax-ws開發的webservice獲取客戶端ip的方法【在代理類XXXDelegate添加如下代碼】

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
@Resource
private WebServiceContext wsContext;
private String getClientInfo(){
MessageContext mc = wsContext.getMessageContext();
HttpServletRequest request = (HttpServletRequest)(mc.get(MessageContext.SERVLET_REQUEST));
String remortAddress = request.getRemoteAddr();
return (remortAddress);
} 

ubuntu 10.10 64 bit 安裝 lotus notes 8.5.2


http://www.garyau.com/
http://www-10.lotus.com/ldd/nd85forum.nsf/f02193c857c8df9e85256d5c005c0b52/2dce47ce8288b65385257663007df9bb?OpenDocument 
在Passport Advantage 下載 Lotus Notes 8.5.2 (Linux, DEB) , 並解壓縮 (用archiver 或者 tar -xf *.tar )

在Terminal 輸入以下指令, 安裝需要的package (不要打 # )

1) 字型
# sudo apt-get install ttf-xfree86-nonfree
# sudo apt-get install t1-xfree86-nonfree

2) Dependencies
# sudo apt-get install libgnomeprintui2.2-0
# sudo apt-get install ia32-libs

# sudo apt-get install libstdc++5

3) 安裝 32 bit package install wrapper
# wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb
# sudo dpkg -i getlibs-all.deb

4) 安裝 32 bit packages (不需要理會error):
# sudo  getlibs -p libavahi-client3 libavahi-common3 libavahi-glib1
libbonoboui2-0 libcroco3 libdbus-1-3 libdbus-glib-1-2 libeel2-2
libgnome2-0 libgnomecanvas2-0 libgnome-keyring0 libgnome-menu2
libgnomeprint2.2-0 libgnomeprintui2.2-0 libgnomeui-0 libgnomevfs2-0
libgsf-1-114 libgsf-1-dev librsvg2-2 librsvg2-common libselinux1
libsepol1 libstartup-notification0 libxkbfile1
gtk2-engines-ubuntulooks gtk2-engines-murrine

(有點重覆... 不過貼埋先)
# sudo getlibs -p libgnomeprintui2.2-0 libgnomeprint2.2-0 libgnomevfs2-0 libgnomeui-0 libxkbfile1 libstartup-notification0 libsepol1 libselinux1 libgsf-1-114 libgsf-1-dev librsvg2-2 librsvg2-common libavahi-client3 libavahi-common3 libavahi-glib1 libbonoboui2-0 libcroco3 libdbus-1-3 libdbus-glib-1-2 libgnome2-0 libgnomecanvas2-0 libgnome-keyring0 libgnome-menu2 gtk2-engines-murrine
5) 安裝Lotus Notes (如有需要, 可以安裝其他 notes packages)
# sudo dpkg -i --force-architecture ibm-lotus-notes-8.5.1.i586.deb

6) 會見不到電郵,或者開得好慢, 可以加64bit 的patch , 會回復正常速度
# wget http://www.benkevan.com/upload/lotus_notes/libgdk-x11-2.0.so.0
# wget http://www.benkevan.com/upload/lotus_notes/libgdk_pixbuf-2.0.so.0
# wget http://www.benkevan.com/upload/lotus_notes/libgdk_pixbuf_xlib-2.0.so.0
# wget http://www.benkevan.com/upload/lotus_notes/libgtk-x11-2.0.so.0
# sudo mv *.so.0 /opt/ibm/lotus/notes

7) 使用系統的gnome-open 取代 Lotus Notes 的 "open with"
# sudo mv /opt/ibm/lotus/notes/openwith /opt/ibm/lotus/notes/openwith.orig
# sudo ln -s /usr/bin/gnome-open /opt/ibm/lotus/notes/openwith

8) 幫lib32 整soft link
cd /opt/ibm/lotus/notes/jvm/lib/i386
sudo mkdir usr
sudo ln -s /usr/lib32 ./usr/lib

9) 設定啟動script (8.5.1 其實整好了short cut , 不用自己整)
export GTK_PATH=/usr/lib32/gtk-2.0
cd /opt/ibm/lotus/notes/framework

Android Print Screen 拍下當前畫面

若需將手機畫面拍下

 可利用下列方式將畫面留下


 步驟一
先按下電源鍵不放

 步驟二
再按下 Home 鍵


 適用 HTC Sensation XE

Windows 7 修改檔案總管預設路徑


檔案總管右鍵內容
捷徑>目標


幾個比較常用的位置。

  • 我的電腦:
    %SystemRoot%\explorer.exe /E,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
  • 我的文件: 
    %SystemRoot%\explorer.exe /n,::{450D8FBA-AD25-11D0-98A8-0800361B1103}
  • 資源回收筒:
    %SystemRoot%\explorer.exe /E,::{645FF040-5081-101B-9F08-00AA002F954E}
  • 控制台:
    %SystemRoot%\explorer.exe /E,::{26EE0668-A00A-44D7-9371-BEB064C98683}
  • 網路連線:
    %SystemRoot%\explorer.exe /E,::{7007ACC7-3202-11D1-AAD2-00805FC1270E}

Aqua Data Studio 記憶體調整 & 中文亂碼

Aqua Data Studio 記憶體調整 & 中文亂碼



中文亂碼
     檔案>選項>一般>格線結果字集> 修改為"新細明體"


預設 JVM 記憶體調整
     修改檔案 C:\Program Files\Aqua Data Studio 7.0 - 32bit\datastudio.ini
     尋常字串: vmarg.2=-Xmx256M
     修改紅色部份 EX: vmarg.2=-Xmx512M




砍站指令 wget


砍站指令 wget


例如: 
http://linux.tnc.edu.tw/techdoc/mysql/mysql_doc/manual_toc.html 這是MySQL的線上手冊,
如果你要下載回來參考的話可以使用
-np,限制在本站的東西才抓下來,一定要下這個參數,否則你會砍到不相關的外站,而且砍都砍不完 
-m,類似 mirror,完整對應所有目錄架構

WebLogic Start & Stop & deploy & Undeploy Command


=======STOP WebAP===
java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -user weblogic -password welcome1 -name test-WebAPIS_Client -stop -adminmode

java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -user weblogic -password welcome1 -name APPFront -stop -adminmode


=======Undeploy WebAP===========
java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -username weblogic -password welcome1 -undeploy -targets MServer1 -name test-WebAPIS_Client
java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -username weblogic -password welcome1 -undeploy -targets MServer2 -name APPFront


=======deploy WebAP==============
java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -username weblogic -password welcome1 -deploy -targets MServer1 /opt/app/APIS/war/test-WebAPIS_Client.war -name test-WebAPIS_Client
java weblogic.Deployer -adminurl t3://10.26.3.28:7001 -username weblogic -password welcome1 -deploy -targets MServer2 /opt/app/APP/APPFront.war -name APPFront

Bash shell 快捷鍵


編輯命令
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符後移(左向)
Alt + f :按單詞前移(右向)
Alt + b :按單詞後移(左向)
Ctrl + xx:在命令行首和光標之間移動
Ctrl + u :從光標處刪除至命令行首
Ctrl + k :從光標處刪除至命令行尾
Ctrl + w :從光標處刪除至字首
Alt + d :從光標處刪除至字尾
Ctrl + d :刪除光標處的字符
Ctrl + h :刪除光標前的字符
Ctrl + y :粘貼至光標後
Alt + c :從光標處更改為首字母大寫的單詞
Alt + u :從光標處更改為全部大寫的單詞
Alt + l :從光標處更改為全部小寫的單詞
Ctrl + t :交換光標處和之前的字符
Alt + t :交換光標處和之前的單詞
Alt + Backspace:與Ctrl + w 
相同
類似,分隔符有些差別[感謝rezilla 指正]
重新執行命令


Ctrl + r:逆向搜索命令歷史
Ctrl + g:從歷史搜索模式退出
Ctrl + p:歷史中的上一條命令
Ctrl + n:歷史中的下一條命令
Alt + .:使用上一條命令的最後一個參數
控制命令


Ctrl + l:清屏
Ctrl + o:執行當前命令,並選擇上一條命令
Ctrl + s:阻止屏幕輸出
Ctrl + q:允許屏幕輸出
Ctrl + c:終止命令
Ctrl + z:掛起命令
Bang (!) 命令


!!:執行上一條命令
!blah:執行最近的以blah 開頭的命令,如!ls
!blah:p:僅打印輸出,而不執行
!$:上一條命令的最後一個參數,與Alt + . 相同
!$:p:打印輸出!$ 的內容
!*:上一條命令的所有參數
!*:p:打印輸出!* 的內容
^blah:刪除上一條命令中的blah
^blah^foo:將上一條命令中的blah 替換為foo
^blah^foo^:將上一條命令中所有的blah 都替換為foo


Windows 排程自動關機

Windows 排程自動關機

如何透過指令,

設定排程讓 Windows 系統自動關機

ex: 星期六自動關機 schtasks /create /tn "在六日 00:00:00 關機" /tr "C:\windows\system32\shutdown.exe /s /t 0 /f" /sc weekly /d SAT,SUN /st 00:00:00

ubuntu server 下安裝 transmission CLI下載BT



ubuntu server下安裝transmission CLI下載BT
第一步:
編輯軟件源: vim /etc/apt/sources.list
在尾部加上這些:
deb http://ppa.launchpad.net/transmissionbt/ppa/ubuntu karmic maindeb-src http://ppa.launchpad.net/transmissionbt/ppa/ubuntu karmic main

保存關閉.
第二步:
安裝密匙
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 365C5CA1

第三步
apt-get update && apt-get install tr​​ansmission-cli transmission-common

第四步
配置web管理界面登錄密碼
/etc/init.d/transmission-daemon stopvim /etc/transmission-daemon/setting.json

把RPC密碼和用戶名改下
第五步
重新啟動transmission-daemon
/etc/init.d/transmission-daemon start

如果你沒有配防火牆,到這裡就己經完了,如果不然,還需要配置下防火牆,開放51413端口,另外WEB管理UI需要做proxy pass(nginx或者apache),把所有指向特定域名,如bt.domain .com的請求,都轉發到web管理界面所在的端口9091.
下面是一個實際的nginx配置案例
server{ listen 80; server_name bt.domain.com; location / { proxy_pass http://127.0.0.1:9091/; }}

接著配置防火牆,先清空防火牆規則
iptables -t nat -Fiptables -t nat -Xiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPTiptables -t mangle -Fiptables -t mangle -Xiptables -t mangle -P PREROUTING ACCEPTiptables - t mangle -P INPUT ACCEPTiptables -t mangle -P FORWARD ACCEPTiptables -t mangle -P OUTPUT ACCEPTiptables -t mangle -P POSTROUTING ACCEPTiptables -Fiptables -Xiptables -P FORWARD ACCEPTiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -t raw -Fiptables -t raw -Xiptables -t raw -P PREROUTING ACCEPTiptables -t raw -P OUTPUT ACCEPT

下面的防火牆配置是在你設置了www服務器,openvpn服務器,mysql服務器等服務器之後,再多加一個transmission的詳細總配置
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADEiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECTiptables -A INPUT - m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 3306 -j ACCEPTiptables -A INPUT -p tcp - m state --state NEW --dport 22 -j ACCEPTiptables -I INPUT -p tcp --dport 51413 -j ACCEPTiptables -A INPUT -p udp --dport 1194 -j ACCEPTiptables -A INPUT -s 10.8.0.0/24 - p all -j ACCEPTiptables -A FORWARD -d 10.8.0.0/24 -j ACCEPTiptables -A INPUT -i tun+ -j ACCEPTiptables -A FORWARD -i tun+ -j ACCEPTiptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPTiptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7iptables -A INPUT -j REJECTiptables -A FORWARD -j REJECTiptables-save > /etc/iptables.up.rulesvim /etc/network/if-pre-up.d/iptables

輸入下面內容
#!/bin/bash/sbin/iptables-restore < /etc/iptables.up.rules

保存下,再執行
chmod a+x /etc/network/if-pre-up.d/iptables

這樣所有的配置會再下次系統啟動時自動生效,如果不想自己動手安裝腳本,那麼可以藉助下面的這個自動安裝工具:
http://zvp.googlecode.com/files/install_transmission.tar.gz
wget到/root目錄下,用root登入VPS進行執行。

Open SHS File In Windows 7


步驟一: 在Windows XP 系統裡
複製 此檔案到shscrap.dll from c:\Windows\system32
步驟二: 請把shscrap.dll 檔案 根據你的作業系統 , 來貼上

Windows 7 X86 位置如下
C:\Windows\System32

Windows 7 X64 位置如下
C:\Windows\SysWOW64

步驟三: 複製下列字串 , 貼到文字檔上後 , 變更副檔名成 .REG

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.shs]
@="ShellScrap"
[HKEY_CLASSES_ROOT\ShellScrap]
@="Scrap object"
"NeverShowExt"=""
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
32,00,5c,00,73,00,68,00,73,00,63,00,72,00,61,00,70,00,2e,00,64,00,6c,00,6c,\
00,2c,00,2d,00,32,00,35,00,38,00,00,00
[HKEY_CLASSES_ROOT\ShellScrap\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
73,00,63,00,72,00,61,00,70,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,30,\
00,30,00,00,00
[HKEY_CLASSES_ROOT\ShellScrap\shell]
[HKEY_CLASSES_ROOT\ShellScrap\shell\open]
[HKEY_CLASSES_ROOT\ShellScrap\shell\open\command]
@=hex(2):72,00,75,00,6e,00,64,00,6c,00,6c,00,33,00,32,00,20,00,25,00,53,00,79,\
00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,\
73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,73,00,63,00,72,00,61,\
00,70,00,2e,00,64,00,6c,00,6c,00,2c,00,4f,00,70,00,65,00,6e,00,53,00,63,00,\
72,00,61,00,70,00,5f,00,52,00,75,00,6e,00,44,00,4c,00,4c,00,20,00,25,00,31,\
00,00,00
[HKEY_CLASSES_ROOT\ShellScrap\shellex]
[HKEY_CLASSES_ROOT\ShellScrap\shellex\DataHandler]
@="{56117100-C0CD-101B-81E2-00AA004AE837}"
[HKEY_CLASSES_ROOT\CLSID\{56117100-C0CD-101B-81E2-00AA004AE837}]
@="Shell Scrap DataHandler"
[HKEY_CLASSES_ROOT\CLSID\{56117100-C0CD-101B-81E2-00AA004AE837}\InProcServer32]
@="shscrap.dll"
"ThreadingModel"="Apartment"


步驟四: 然後執行此 Reg 檔案後 , 重新開機後
即可用Office 2010來開啟.SHS副檔名格式了