網頁

2013年8月28日 星期三

Tomcat筆記-在ie中無法直接下載rar

Tomcat中內建的mime type沒有rar,所以照下列步驟處理

Step1:cd {Tomcat安裝目錄}/conf
Step2:vim web.xml
Step3:在Default MIME Type Mappings的區塊中,加入底下的code
<mime-mapping>
    <extension>rar</extension>
    <mime-type>application/x-rar</mime-type>
</mime-mapping>


Step4: 重啟server
Step5: 清掉IE的cache,再試一次就ok了

2013年8月20日 星期二

Spring、J2EE學習筆記-更動Tomcat內的jvm options

想要更動tomcat取用的memory量,找半天找不到在哪設,查了下資料才知道在shell script中,步驟如下

Step 1: cd {Tomcat安裝目錄}/bin
Step 2: vim catalina.sh
Step 3: 加入以下(設定是參考Help: Tomcat crashing with "org.apache.jk.common.ChannelSocket processConnection"

#JAVA_OPTS="-server -d64" (我的server不是64位元,所以mark掉)
JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=300m -XX:MaxPermSize=300m"
JAVA_OPTS="$JAVA_OPTS -XX:NewSize=1024m -XX:MaxNewSize=1024m"
JAVA_OPTS="$JAVA_OPTS -XX:TargetSurvivorRatio=90 -XX:SurvivorRatio=5 -XX:MaxTenuringThreshold=12"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"


我其實主要只是想設定2048的memory,哈

參考網址:
Help: Tomcat crashing with "org.apache.jk.common.ChannelSocket processConnection"
tomcat jvm options
add jvm options in tomcat

Spring、J2EE學習筆記-org.apache.jk.common.MsgAjp processHeader 嚴重的: BAD packet signature 18245

查看到log有底下的訊息

2013/8/15 下午 10:00:57 org.apache.jk.common.MsgAjp processHeader
嚴重的: BAD packet signature 18245
2013/8/15 下午 10:00:57 org.apache.jk.common.ChannelSocket processConnection 嚴重的: Error, processing connection
java.lang.IndexOutOfBoundsException
at java.io.BufferedInputStream.read(BufferedInputStream.java:310)
at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:628)
at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:585)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:693)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)

查了下資料,發現還蠻多人有這狀況,主要是有人查了8009這個socket,用netstat -na看了下,也沒發現有process在用,這倒是讓我覺得有人在掃這個IP,不很好幾個小時一次,看了下資料都是在tomcat的server.xml中將<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />給mark掉即可,稍微看了下ajp是什麼

The Apache Tomcat Connector - AJP Protocol Reference
Apache JServ Protocol(wiki)

看起來是綁定web server和application server的binary protocol,細節沒測試不知道,猜是tomcat和apache綁定80有關,總之拿掉那行後看來是沒有exception了。

參考網址:

2013年8月19日 星期一

iOS開發筆記 - 取消圖示上的光影

有個需求要取消圖示上半圓的光影,印像是將Prerendered打勾,不知道為什麼一直取消不掉,只好找下資料,看到的方法都一樣,記錄在底下:

1. 先在專案 Target 的 Summary 標籤頁下找到 App Icons項
2. 在 “Prerendered” 打上鉤。
此时在info.plist里会多出一个配置项 "Icon already includes gloss effects"
3. 再找到 “Icon files (iOS 5)” 專案(如果有的話)展開,把裏面的 “Icon already includes gloss effects” 設置成 “YES”

不過仔細用以往的經驗想了下,可能是Resources被cache,只好"Command"+"Shift"+"K",先清一清專案重新編譯,裝置原本裝好的刪掉,再重新裝上去,就ok了

2013年8月14日 星期三

iOS開發筆記 - NSArray及NSDictionary的writeToFile: atomically:存檔失敗,但無Exception

NSArray及NSDictionary有個方便的writeToFile的function可以用,但發現若是裡頭有個元素是NSNull時,存檔會失敗,而且還沒有任何的exception,一般在使用時,是不會想到用NSNull,但我主要是在用AFNetwork時,發現它在解析JSON時,若null的元素會直接設NSNull。

推敲原因,猜測是因為NSNull並沒有實作Archive(實作了也很奇怪),而內定的Class都有,所以若有可能取得的NSArray及NSDictionary之中有元素可能有NSNull,要記得writeToFile前,先將那個元素remove或設成內定Class或能Archive的元素,才能成功儲檔。