Archive for August, 2012

How to convert Maven Project to Eclipse project

1. For Java Project

mvn eclipse:eclipse

2. For Java Web Application

mvn eclipse:eclipse -Dwtpversion=2.0

Reference
How To Convert Maven Based Web Application To Support Eclipse IDE

การเปลี่ยน Http port ใน Jboss AS 6.1

มีโอกาศเลื่อนขั้นมาใช้ Jboss AS 6.1 เนื่องจากในเครื่องลง Web Server และ Application Server ไว้หลายตัว ทำให้ต้องเปลี่ยน port ของ Jboss AS 6.1 ก่อนที่จะใช้งาน ขั้นตอนปกติสำหรับการเปลี่ยน port Http ใน Jboss 4.x, 5.x นั้นเราสามารถเปิดไฟล์

<JBOSS_HOME>\server\<server tyep>\deploy\jbossweb.sar\server.xml

จากนั้นแก้ไขค่า port ตามที่ต้องการได้ แต่ใน Jboss AS 6.1 นั้นแตกต่างออกไป หากเราเปิดไฟล์

<JBOSS_HOME>\server\<server tyep>\deploy\jbossweb.sar\server.xml

ขึ้นมา จะเจอข้อความดังนี้

<Connector protocol="HTTP/1.1" port="${jboss.web.http.port}" address="${jboss.bind.address}" 
         redirectPort="${jboss.web.https.port}" />

port address and redirectPort ใช้ค่าจากไฟล์อื่นอีกที่ (Properties หรือ XML config) จากการสอบถามจาก google แล้วก็ได้ความว่า ให้เปิดไฟล์

<JBOSS_HOME>\server\<server tyep>\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml

จากนั้นมองหา tag ดังต่อไปนี้

<bean class="org.jboss.services.binding.ServiceBindingMetadata">
	<property name="serviceName">jboss.web:service=WebServer</property>
	<property name="bindingName">HttpConnector</property>
	<property name="port">8080</property>
	<property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP sockets</property>
</bean>

แก้ไข port ตามที่ต้องการ ทดลองรัน Jboss ขึ้นมาจะเห็นว่า port เปลี่ยนไปแล้ว

Starting Coyote HTTP/1.1 on http-127.0.0.1-9090
Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
JBossAS [6.1.0.Final "Neo"] Started in 27s:662ms

ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

ใช้ Hibernate query ข้อมูลแล้วเจอ error

java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

นึกสงสัยทำไมเกิด error เพราะ method นี้ถูกเรียกจากที่อื่นก็ไม่มีปัญหาอะไร เลยลอง debug โปรแกรมดู ปัญหาเกิดจากมีการส่ง parameter ที่เป็น null ให้กับ Hibernate query

How to run JSF 2.x in Jboss AS 5.1

I have new project run on Jboss AS 5.1.0.GA using JSF 2.1.10 and RichFaces 4.2.2 final.
I try to search the solution on Google I found “Stinky Cheese” article “JBoss 5 with JSF 2 on a per-app basis” this is very usefull.

1. Add the following three things to web.xml

<!-- JSF 2: this tells JBoss 5 to use the jsf jars included in the app -->
<context-param>
   <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
   <param-value>true</param-value>
</context-param>

<!-- JSF 2: this needs to be included to avoid an error message -->
<context-param>
   <param-name>com.sun.faces.injectionProvider</param-name>
   <param-value>org.jboss.web.jsf.integration.injection.JBossInjectionProvider</param-value>
</context-param>

<!-- JSF 2: use pages named .xhtml instead of .jsp. -->
<context-param>
   <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
   <param-value>.xhtml</param-value>
</context-param>

2. Download Jboss AS 6.1
3. Copy the following jars from JBoss 6.1 into the WEB-INF\lib directory.

<Jboss6.1>\common\lib\jboss-mc-int-servlet.jar
<Jboss6.1 6>server\default\deployers\jsf.deployer\Mojarra-2.0\jsf-libs\jboss-faces.jar

4. Add following jar to WEB-INF\lib directory.(If not exists on you application)

	el-api-2.2.jar
	el-impl-2.2.jar
	jsp-api-2.1.jar

Application environments
1. Jboss AS 5.1.0.GA
2. JDK 1.6
3. RichFaces 4.2.2
4. JSF 2.1.10

Reference
JBoss 5 with JSF 2 on a per-app basis