โห วันนี้สงสัยต้องรีบกลับไปพักก่อน เพราะมึนสุดๆ เลย เป็นเรื่องที่ไม่น่าจะมึนเลย แต่ติดปัญหานั่นนี่อยู่นั่น
เรื่องมีอยู่ว่า จะพยายามเอา PHP ไปเรียก Jasper report ให้ได้ เพราะอุตส่าห์ทำ environment ตั้งไว้หมดแล้ว ลง resin server เอาไว้แล้วด้วย แต่เหลือแค่ยังไม่ได้ test ว่าใช้งานได้ไหม
และก็เพิ่งมาค้นพบตัวเองว่า ไม่เคยเอา simple java มารันบนนี้เลย แต่เคยเอา PHP ไปเรียก class java สำเร็จแล้ว – -”
ระหว่างทางก็เจอปัญหาปัญญาอ่อนมากมาย ถ้าคิดออกจะบอกเรื่อยๆ
สิ่งที่ทำคือ เอา Java App ที่รันอยู่บน JBoss มารันบน resin แล้ว structure มันก็ไม่เหมือนกัน สรุปคือจริงๆ ก็เหมือนๆ กันทุก container คือ เอา class ไปวางไว้ที่ classes folder ปกติบน JBoss มันจะแยก .java กับ .class เอาไว้คนละ folder (.java in src และ .class in build) แต่โดย default ของ resin มันจะอยู่ใน classes folder หมดเลย ตอนแรกหลงทางไปใหญ่ คิดว่าจะต้อง extends พวก quercus method อะไรด้วย สรุปแล้วไม่มีอะไร งงไปเอง – -”
แต่!!!!!!!!!!!!!! มันจะไม่ compile Java ให้เราเลย หากเราไม่ไปกำหนด webapp-id เอาไว้ใน /var/resin/conf/resin.xml (สำหรับ PHP ไม่มีปัญหาอะไร เพราะมันไม่ต้อง compile .java->.class เลยเอา app ไปวางได้โดยไม่ต้องกำหนดที่ resin.xml)
<web-app id="/test" root-directory="webapps/ROOT/test" archive-path="webapps/ROOT/test.war"/>
อ่อ หากเรารัน web ขึ้นมา แล้วมันบอกว่า permission denied ไม่สามารถเขียนไฟล์ .class ได้ ให้เราไป chown -R ให้ folder ที่จะเขียน .classes ก่อน
และอย่าลืมว่า java ต้องอยู่ใน package มิฉะนั้นมันจะไม่ถูก compile
Why do I have to put my classes in a package?
Starting with Java 1.4 the use of classes that are not in a package (sometimes called the “default” package”) is deprecated. Java classes should always be in a package. In some version of Java, packageless classes are not going to be supported at all.
The solution is to put all of your classes in a package.
See http://java.sun.com/j2se/1.4/compatibility.html, point #8, second bullet point.
สิ่งของที่อยู่ใน WebContent ของ jboss ก็เอาออกมาอยู่ path นอกสุดได้ตามปกติ
web.xml ก็ config ตามปกติไม่มีอะไรพิสดาร
และสิ่งที่ทำให้แก้นานที่สุดเมื่อกี้คือ พยายามแก้ไฟล์ java และก็รันใหม่ แต่ปรากฎว่าผลก็ยังเหมือนเิดิม เหมือนผีหลอก ตอนหลังจึงได้รู้ว่า มันไม่ยอมทับ file .class เดิม ให้ ก็เลยลองไปลบแล้วให้มัน compile ใหม่ ปรากฎว่าใช้งานได้ แอบงงนิดหน่อย เพราะคิดว่ามันเป็นแบบนี้แค่เป็นบางทีมั้ง ปกติไม่เห็นจะเคยเจอ – -*
และสิ่งที่ผิดที่สุดของวันนี้คือ หาเรื่องเองโดยการนั่งแก้ไฟล์ java ใน notepad แล้วก็เลยตาลาย ไม่เห็นสีสัน เหนื่อยโดยใช่เหตุ เพิ่งมารู้ตัวอีกทีตอนทำเสร็จแล้ว
อ่านไปอ่านมา ก็ไม่เห็นจะมีอะไรต้องมึนแล้ว แล้วตูมึนอะไรฟระ – -”




อีก