ไม่ว่าจะสูงแค่ไหนก็ไปถึง











{January 24, 2009}   JAD (Java Decompiler)

Wanna see java code from .class file ?

This is how to see java code from .class file in eclipse

  1. go to JAD Homepage, download jad.exe
  2. extract file and put it somewhere
  3. go to download JadClipse (plugins for using JAD in eclipse)
  4. extract JadClipse and put an extract file (‘net.sf.jadclipse_3.3.0′) in eclipse plugins folder
  5. open eclipse choose window > preferences >java > JadClipse
  6. path to decompiler:  (some where that we put in number2)
  7. directory for temporary files: (anywhere you want)

and now if we press F3 on ‘String’ class it will open String.class that have a source code

^ ^



{January 5, 2009}   Struts1 project

ตอนนี้ ทำโปรเจค Struts ซึ่งไม่เคยทำมาก่อน เคยทำแต่ jsf jsp ก็เลยขอจดไว้เป็นบันทึกกันลืมซักหน่อย

1. xml config ของ struts ที่สำคัญมากคือ struts-config.xml ซึ่งภายในจะมีสองส่วนที่สำคัญคือ <form-beans> กับ <action-mappings>

  • <form-beans> บอกว่าใน form นั้นมี property อะไรบ้างที่จะใช้ในหน้า jsp
  • <action-mappings> บอกว่า 1) ตัว class action.java ที่ map กับ path ที่เรียก 2) จาก form นั้น ถ้าได้ผลลัพธ์อย่างนี้ให้ forward ไปไหน

และการจะใช้ struts-config.xml ได้ก็ต้องไปเซตที่ web.xml ซะก่อน (ตัวอย่างหาเอาจากเวบสอนทั่วๆไป)

2. เวลามันเข้า action.java มันจะเข้าที่ fn execute เสมอ (struts1.1 นะ เวอร์ชั่นอื่นไม่แน่ใจ)



ใน eclipse นั้นมันจะเซตค่าสำหรับแต่ละ application server(as) ว่า lib อยู่ตรงไหน แต่สำหรับ jboss5 as มันเซตผิด ต้องไปแก้ (ถ้าเจอมันเซตผิดสำหรับ as อื่น ก็ไปแก้ทำนองเดียวกัน)

ตัวอย่างวิธีแก้ อันนี้มันเซต jsf lib ผิดที่

เปิดที่

%eclipse_home%/plugins/org.eclipse.jst.server.generic.jboss_1.5.205.v200805140145/servers/jboss5.serverdef

search “jsf-libs” จะเจอมันอยู่ที่

<include name=”server/default/deployers/jbossweb.deployer/jsf-libs/*.jar” />

ซึ่งที่จริงแล้วใน jboss as นั้น jsf lib มันต้องอยู่ที่

<include name=”server/default/deploy/jbossweb.sar/jsf-libs/*.jar” />

ก็แก้ให้มันถูกต้อง แค่นี้ก็เรียบร้อย

ปล. เหมือน eclipse เวอร์ชันที่ใช้ (3.4.1) มันจะเซตผิดหลายที่เหมือนกัน ตรง mail.jar ก็ด้วย (แก้ตรง <exclude> กับ <archive path>) มันจะอยู่ใน common/lib/mail.jar

แก้เสร็จก็ restart eclipse ซักหนึ่งทีด้วยนะจ๊ะ



{January 19, 2008}   web.xml for web-app 2.5

<?xml version=”1.0″ encoding=”UTF-8″?>

<web-app version=”2.5″ xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>



1. คลิกขวาที่โปรเจค เลือก Exadel Studio > Add Hibernate Capabilities … (ต้องลง Exadel Studio 4.0.4a ก่อน)
2. เลือก jar file ทั้งหมดที่มันเสนอมา
3. ตั้งชื่อ Hibernate Configuration File … ตัวอย่าง
/projectName/hibernate.cfg.xml
4. Connection Types ให้เลือก ตาม default ไปเลย
5. Hibernate Dialect: org.hibernate.dialect.SQLServerDialect
JDBC Connection Driver Class: com.microsoft.sqlserver.jdbc.SQLServerDriver
JDBC Connection URL: jdbc:sqlserver://[hostname]:1433;databaseName=[dbName]
6. แล้วก็ใส่ username กับ password แล้ว Test Connection ดู

ถ้า test แล้วมีปัญหา “com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed.” ให้ไปที่ Configuration Tools > SQL Server Configuration Manager > SQL Server 2005 Network Configuration > Protocol for MSSQLSERVER แล้ว enable TCP/IP แล้วก็ restart service ทีนึง



{August 11, 2007}   Using tomahawk in JBoss 4.2

เนื่องจาก JBoss 4.2 เปลี่ยนตัว jsf implementation จาก myfaces เป็น jsf implementation ดังนั้นการใช้ tomahawk จึงต้องเพิ่มอะไรนิดหน่อย คือต้องเพิ่ม lib พวก commons ต่างๆ น่าจะประมาณนี้
commons-el, commons-collections, commons-digester, commons-discovery, commons-logging, commons-beanutils, commons-codec

ซึ่งนอกจาก commons-el ที่ต้องไปหามาเองแล้ว ตัวอื่นจะมาจาก myfaces-core ทั้งนั้น

ส่วนใน web.xml ก็ต้อง config filter กับ filter-mapping เพิ่มดังนี้

<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<param-name>maxFileSize</param-name>
<param-value>20m</param-value>
</init-param>
</filter>

<!– extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages –>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<!– servlet-name must match the name of your javax.faces.webapp.FacesServlet entry –>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

<!– extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.) –>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

<!– extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages –>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>

ส่วนอันนี้ใส่เพื่อให้ไม่ขึ้น info ที่บอกว่า จะใช้ค่า default

<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
<param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name>
<param-value>/faces/myFacesExtensionResource</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
<param-value>true</param-value>
</context-param>



{April 30, 2007}   Hello world!

Welcome to novelus.wordpress.com



et cetera