ข้ามไปที่เนื้อหาหลัก

EJB development ด้วย Glassfish Server -- Part 2 ( Create a project )

สร้าง project สำหรับ EJB module

สร้าง EJB project ชื่อว่า titan-ejb เลือก Target Runtime : Glassfish


คลิกขวาที่ Project

ติ๊ก JPA facet, และ configure JPA facet ให้ใช้ connection profile ที่สร้างไว้แล้ว


>>>>>>>>>>>>>>>>>>> วิธีสร้าง JPA Entity:

- คลิกขวาที่ Project Explorer
- New->Class ชื่อ com.titan.domain.Cabin
implement java.io.Serializable
[ Serializable คือ สามารถ convert class to String แล้วส่งไปที่ network ได้ ]

วิธีสร้าง implement class บน eclipse


มันก็จะสร้างฟังก์ชั่นโบ๋ๆ มาให้
package com.titan.domain;

import java.io.Serializable;

public class Cabin implements Serializable {

}


- Add the fields
static final long serialVersionUID = 1L;

private int id;
private String name;
private int deckLevel;
private int shipId;
private int bedCount;


- สร้าง getters and setters สำหรับ id, name, deckLevel, shipId, and bedCount.
[ ใน eclipse ง่ายมาก ไปที่ Source > Generate setters and getters ( หรือ คลิกขวาตรงที่เขียนโค้ด Source > Generate setters and getters ได้เหมือนกัน ) แล้วติ๊กเอาเลย ]

ใส่ @Entity annotation ที่ class และ @Id annotation ที่ id ( ไม่ต้องใส่ @GeneratedValue ที่นี่ )
[ มันก็จะ Error อ่ะนะ ก็คลิกขวา แล้ว ก็ import javax.persistence.Entity กับ javax.persistence.Id ซะ ( หรือ คลิกขวาที่เขียนโค้ด Source > Organize Import ก็ได้ ) ]

NOTE :
- Entity ต้องมี constructor ที่ไม่ส่ง parameter เสมอ ไม่งั้น deploy ไม่ผ่าน
- ถ้า attribute เรา ไม่ใช่ primitive type ต้องใส่ @Temporal เช่น

@Temporal(TemporalType.TIME)
private Date deliveryDate;

- ตัวอย่าง enum
 public enum BidStatus {
PENDING, ACCEPTED, REJECTED
}

@Enumerated
private BidStatus status;


เวลาใช้ก็ bid.setStatus(Bid.BidStatus.ACCEPTED);
ดูเพิ่มเติมได้ที่นี่


- สร้าง persistence.xml สำหรับ data source ไว้ใน META-INF
นี่บอกว่า ให้ drop table ทุกครั้งที่ redeploy

NOTE : name="titan" นี้จะต้องไปตรงกับ @PersistenceContext(unitName="titan") ใน TravelAgentRemote.java
<persistence-unit name="titan">
<jta-data-source>jdbc/__localDS</jta-data-source>
<properties>
<!-- Remove if you want to save the DB between redeploys -->
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>

แล้วก็บอกให้มัน "Discover annotated classes automatically" มันจะได้หา class ที่เป็นโดเมนให้อัตโนมัติ

>>>>>>>>>>>>>>>>>>> วิธีสร้าง stateless "session bean" :
[ จริงๆ สร้างเป็น new > interface มาอันนึง แล้ว new > class มาอันนึงก็ได้ ]

ถ้ากด Next > มันจะใส่ MappedName ได้

มันจะสร้าง package com.titan.travelagent
ในนั้นจะมี
- Remote interface, Java interface class ชื่อ TravelAgentRemote.java

@Remote
public interface TravelAgentRemote {
public void createCabin( Cabin cabin ); //
public Cabin findCabin( int id ); //
}


- implementation, Java class ธรรมดา ชื่อ TravelAgent.java

NOTE : ejb/TravelAgentJNDI ต้องไปตรงกับ ใน client
@Stateless( mappedName="ejb/TravelAgentJNDI" )
public class TravelAgent implements TravelAgentRemote {
@PersistenceContext(unitName="titan") //
private EntityManager manager; //
public void createCabin( Cabin cabin ) { //
manager.persist( cabin ); //
} //
public Cabin findCabin( int pKey ) { //
return manager.find( Cabin.class, pKey );//
}//
}


ปล. บรรทัดที่ comment ไว้ก็พิมพ์เพิ่มเข้าไปนะ แล้วก็ import โน่นนี่ให้ครบด้วย อย่าให้มัน error

สร้าง new project สำหรับ client ======================================
สำหรับ test new stateless session bean:

- สร้าง "Java project" ชื่อ titan-client
- เพิ่ม class Client ไว้ใน package com.titan.clients และใส่ client code ตามนี้:

public class Client {
public static void main(String[] args) {
try {
Context jndiContext = new InitialContext();
System.out.println( "Looking up ejb/TravelAgentJNDI" );
Object object = jndiContext.lookup( "ejb/TravelAgentJNDI" );
TravelAgentRemote travelAgent = (TravelAgentRemote)object;

Cabin cabin_1 = new Cabin( );
cabin_1.setId(1);
cabin_1.setName("Master Suite");
cabin_1.setDeckLevel(1);
cabin_1.setShipId(1);
cabin_1.setBedCount(3);
travelAgent.createCabin(cabin_1);

Cabin cabin_2 = travelAgent.findCabin(1);
System.out.println(cabin_2.getName( ));
System.out.println(cabin_2.getDeckLevel( ));
System.out.println(cabin_2.getShipId( ));
System.out.println(cabin_2.getBedCount( ));
} catch (javax.naming.NamingException ne){
ne.printStackTrace( );
}
}
}


ยัง error อยู่ ช่างมัน

- เพิ่ม project titan-ejb เป็น required project บน build path
มันจะทำให้ import จาก titan-ejb ได้

ทำตามนี้
Project -> properties


- เพิ่ม ~/glassfish/lib/appserv-rt.jar และ ~/glassfish/lib/javaee.jar เป็น External JARs

( บอก Java ว่าแม้รันใน standalone mode ต้องใช้ Java EE functionality (mainly JNDI)
, set up necessary deployment descriptors (mainly jndi.properties) ทำให้เราคุยกับ server JNDI ถูกตัวเพื่อ reference ไปยัง TravelAgent object )



Deployment ==================================================

คลิกขวาที่ EJB project เลือก Export > EJB JAR file

destination : [your home]/glassfish/domains/domain1/autodeploy/titan.jar และติ๊ก "overwrite existing file"


NOTE : เลือก GlassFish v2 ด้วย ( รูปผิดๆ )


Error ของ Deployment จะอยู่ที่แท็บ Glassfish Log Viewer นะ ( ไม่ใช่ Console )

ถ้าได้อะไรประมาณ " This pool is not registered with the runtime environment "

กลับไปดู persistence.xml ว่า ไอ้เนี่ย


jdbc/__localDS
<jta-data-source>jdbc/__localDS</jta-data-source>

ที่มันชี้ไปที่ derby connection pool น่ะ มันชื่อตรงกันหรือเปล่า



Client execution
คลิกขวาที่ Client class ใน Project Explorer

Run As -> Java Application


TIPS : วิธี debug JNDI

เข้าไป browse JNDI ดู โดย Application Server > JNDI Browsing

จะต้องมีอะไรทำนองนี้อยู่ ejb/TravelAgentJNDI

จัดการ database

วิธีแรก ใช้ Database Development perspective ของ Eclipse

คลิกขวา เลือก Edit ที่ table

เราสามารถ CRUD ได้


วิธีสอง command-line SQL

ใช้ ij Client ที่มากับ Derby


$ export DERBY_HOME="/home/mdailey/glassfish/javadb"
$ sh ~/glassfish/javadb/bin/ij
ij version 10.4
ij> connect 'jdbc:derby://localhost:1527/localDB';
ij> show tables;
...
APP |CABIN |
...
ij> select * from cabin;
...

Association ==================================================


จำไว้ว่า unidirectional ต้องใส่ (cascade={CascadeType.ALL}) เสมอ

ลองเพิ่ม class Phone ลงไปดิ๊
package com.titan.domain;

@Entity
public class Phone implements java.io.Serializable {
static final long serialVersionUID = 1L;
@Id @GeneratedValue
private int id;
private String number;
...

แล้วก็ Class Customer


package com.titan.domain;

@Entity
public class Customer implements java.io.Serializable {
static final long serialVersionUID = 1L;
@Id @GeneratedValue
private int id;
private String lastName;
private String firstName;
@OneToMany(cascade={CascadeType.ALL})
private Collection<Phone&ht; phoneNumbers = new ArrayList<Phone>();

นี่คือ one-to-many unidirectional relationship ( Phone class doesn't know about the Customer class )


ต่อไปให้ Add the getters and setters สำหรับ entities
แล้ว couple method ลง stateless session bean ของคุณซะ:


...
public int createCustomer();
public Collection <Phone> phoneNumbersForCust( int id );

และ implementations ใน bean class


...
public int createCustomer(Customer customer) {
manager.persist( customer );
return customer.getId();
}
public Collection<Phone> phoneNumbersForCust(int id) {
Customer customer = manager.find( Customer.class, id );
Collection<Phone> phoneList = customer.getPhoneNumbers();
// Ensure that the lazy-initialized collection is fetched
phoneList.size();
return phoneList;
}

ตอนนี้ client ของเรา, ให้สร้าง a detached Customer instance, add a Phone instance to it, make it persistent using createCustomer(), then fetch the phone numbers using phoneNumbersForCust()


ถ้ามัน error ประมาณว่า
Could not load class oracle.toplink.essentials.indirection.IndirectList
ให้ add toplink-essentials-agent.jar เข้าไปที่ client

ref : mdailey

ความคิดเห็น

ติดตามบล็อกบนเฟซบุ๊คเพจ

โพสต์ยอดนิยมจากบล็อกนี้

เทคนิคคิดเลขเร็วโดยใช้ วิธีคิด แบบ เวทคณิต ( Vedic Mathematics example )

จากที่สงสัยเรื่อง ลูกคิด ของ จินตคณิต ที่ลองไปค้นดู
ปรากฎว่า เจอ เวทคณิต ซึ่งเขาบอกว่า อยู่ในคัมภีร์พระเวท

ลองอ่านดูแล้ว รู้สึกว่าฝึกสมอง ก็ทำให้คิดเลขเร็วดี
เลยสรุปมาให้ ตามนี้

Tutorial 1

การลบเลข
ALL FROM 9 AND THE LAST FROM 10
ทุกตัวลบจาก 9 และตัวสุดท้ายลบจาก 10

เช่น 1000 - 357 = 643
10,000 - 1,049 = 8951

ถ้า 1,000 - 83 ให้มองว่ามี 0 อยู่ข้างหน้า
เป็น
1,000 - 083 = 917

ฝึกบ่อยๆ ก็คล่อง แล้วก็ไม่ต้องใช้เครื่องคิดเลขด้วย
ลองทำดูสิ
1) 1000 - 777 =
2) 1000 - 283 =
3) 1000 - 505 =
4) 10,000 - 2345 =
5) 10,000 - 9876 =
6) 10,000 - 1011 =
7) 100 - 57 =
8) 1000 - 57 =
9) 10,000 - 321 =
10) 10,000 - 38 =

3,000 - 467 ก็ทำเหมือนกัน โดยลบตัวแรกสุดของ 3,000 ไป 1
จากนั้นก็ทำเหมือนเดิม จะได้ว่า 3,000 - 467 = 2,533

Tutorial 2
VERTICALLY AND CROSSWISE สำหรับตัวเลขที่น้อยกว่าฐานนิดหน่อย

ลอง 88x98

88 น้อยกว่า 100 อยู่ 12
98 น้อยกว่า 100 อยู่ 2
12x2 = 24
88-2 หรือ 98-12 ได้ 86
ดังนั้นตอบ 8,624

ดูอีกตัวอย่าง
หรือ

ลองทำนี่ดู
1) 87 x 98 =
2) 88 x 97 =
3) 77 x 98 =
4) 93 x 96 =
5) 94 x 9…

อยู่เหงาๆ เราไปเที่ยว - วัดอรุณราชวราราม ( วัดแจ้ง ) + วัดสระเกศ ( ภูเขาทอง )

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ

คำเตือน เอ็นทรีนี้รูปเยอะมากกกก ควรปิดบิตก่อนดู

ผ่างๆๆ ท่านสามารถรับชมเอนทรีนี้ผ่าน url http://tinyurl.com/goldenMount ได้ด้วย

วันนี้ตั้งใจไปวัดอรุณฯ

เดินทางทางน้ำเหมือนเดิม

แต่คราวนี้นั่งเรือ ธงสีฟ้า ( คราวก่อน นั่งเรือ ธงสีส้ม )

พอถึงท่าสาทร เขาบอกว่า ให้ลงลำที่จอดอยู่ได้เลย เก็บตังในเรือ

ก็ งงๆ เดินลงไป

เหมือนเดิมครับ

ชูชีพอยู่ใต้ที่นั่งของท่าน
พอเรือออกสักพัก มีไกด์ มาบรรยาย

อ้าว กรำ

ขึ้นผิดเรือรึเปล่า

นี่มันเรือท่องเที่ยว 150 บาท ไม่ใช่เร๊อะ

กะลังอึ้งๆอยู่

แต่พอไกด์พูดไปสักพัก ก็เลยรู้ว่า 150 บาท มันราคาเหมาวัน

แล้วก็ได้ความรู้ของท่าเรือ แล้วก็สองข้างทาง




เรือธงฟ้านี่มันไปสุดที่ท่าพระอาทิตย์เท่านั้นเองนะ แล้วก็กลับ

ตอนไปมีสาวคนนึง ถามว่า จะไปวัดสระเกศ ไปทางไหน

ถ้าฟังไม่ผิด คนเก็บตังบนเรือ บอกว่า ท่ามหาราช

จากนั้นก็คุยอะไรกันไม่รู้ ไม่ได้ยินแล้วล่ะ




เรือธงฟ้า มันใหญ่กว่า น่าหวาดเสียวน้อยกว่า น้ำกระเด็นน้อยกว่า แพงกว่า เรือธงสีส้ม

คราวนี้รู้และ นั่งริมฝั่งธน ได้มาหลายรูปเหมือนกัน แต่วันนี…

อยู่เหงาๆ เราไปเที่ยว - วัดระฆังโฆสิตาราม

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ



จากที่ คราวก่อน ไปวัดอรุณฯ เขามีให้ล่องเรือไปวัดระฆัง เลยเดาๆ ได้ว่า วัดอยู่ไม่ไกล

ประกอบกับได้ยินเรื่องของ สมเด็จพระพุฒาจารย์ (โต พรหมรังสี) มานาน



วันนี้เลยลองไปสักหน่อย

นั่งเรือธงสีสัม ( 13 บาทตลอดสาย ) ไปลงท่าช้าง

มองจากท่าช้าง ตรงกลาง เป็น สมาคม พุทธศาสนา อะไรซักอย่างทางซ้ายของรูป คือ พระอุโบสถ วัดระฆัง
แล้วนั่งเรือข้ามฟาก ( 3 บาท ) ไปท่าวัดระฆัง

วัดระฆังโฆสิตารามวรมหาวิหาร
นกเยอะมาก ปลาก็เยอะ

แบบว่า เขามีขายอาหารสำหรับเลี้ยงปลา ( แต่แอบได้ยินคนซื้อบ่นว่าขนมปังขึ้นรา - -! )


ปลาเยอะกว่าที่วัดยานนาวาอีก ตัวใหญ่ๆทั้งนั้น
คราวนี้เราไป มันเปิดแค่อุโบสถ วิหาร แล้วก็ หอไตร แหะ ไอตรง กรอบสีส้มเข้มๆ ซ่อมอยู่


แผนที่วัดระฆังท่าวัดระฆัง ( แม่น้ำเจ้าพระยา ) อยู่ด้านล่าง
คลิกที่ภาพเพื่อดูภาพขยาย
หรือ ดูต้นฉบับที่ เวปไซท์วัดระฆัง
ไปถึงก็เดินดูรอบๆ พระอุโบสถ คนเยอะเหมือนกันนะ

พระเจดีย์
พระเจดีย์ อีก 2 องค์
couple ?
พระปรางค์
สถาปัตยกรรมรัตนโกสินทร์ยุคต้น ยึดถือเป็นแบบฉบับของพระปรางค์ที่สร้างในยุคต่อมา
แล้ว…

อยู่เหงาๆ เลาไปเที่ยว - เที่ยวเชียงรายด้วยตนเอง โดยไม่มีรถ เช่ารถก็ไม่ได้เช่าน้ะจ้ะ นั่งรถสาธารณะล้วนๆแจร้ ตอนที่เจ็ด

วันจันทร์​ 11 ธันวาคม 
05.30 ใส่กางเกงขายาวตัวเดิม หรือ ใส่กางเกงขาสั้น

เช้านี้ตื่นเพราะเสียงนาฬิกาปลุกของห้องข้างๆ นาฬิกาปลุกเลาตั้งไว้หกโมง แต่ห้องข้างๆ ตีห้าครึ่ง ตื่นเลยก็ได้ว่ะ

จริงๆ เป็นเรื่องที่คิดตั้งแต่เมื่อคืนมาแล้วว่าจะใส่ขายาวหรือขาสั้น

เพราะว่าตอนแรกนึกว่าพอวางกระเป๋าไว้ที่โรงแรมในตัวเมือง ก็แพลนว่า จะไปเที่ยววัดร่องขุ่นต่อ
แต่สะดุดว่า เป็นวัด
บวกกับไป search ดู เขาบอกมีผ้าถุงให้ผู้หญิงที่นุ่งสั้น
ก็กลัวว่าใส่ขาสั้นจะเข้าไม่ได้รึเปล่า

ก็เลยคิดว่าจะใส่ยีนส์ขายาวไป
พาลไปว่าจะใส่ยีนส์ขายาวในวันที่สามอีกวัน เพราะไป วัดเหมือนกันอีก

พอจะใส่ยีนส์ขายาวไปก็มีสองทางเลือกอีก คือ
จะใส่ไปตั้งแต่ตอนนี้เลย หรือว่า จะไปเปลี่ยนตอนเอาของไปเก็บที่โรงแรมเชียงราย แล้วค่อยเปลี่ยน
สุดท้ายก็เลือกใส่ไปตั้งแต่ตอนนี้เลย เพราะพอไปถึงโรงแรมเชียงราย โยนของแล้วจะได้เที่ยวได้เลย ไม่ต้องเสียเวลาเปลี่ยน

07.00 ขนมแบบเชียงราย
ตลาดเช้า

รุ่งเช้าไปตลาดเช้า ส่วนใหญ่เป็นของสด ผักสด เนื้อสด
ชาวเขาซ้อนรถกระบะมา เอาของมาขาย ไหนลูกเจ้าของรีสอร์ตบอก ชาวเขาส่วนใหญ่เดินเอาไงฟร่ะ?

ไปสะดุด แป้งข้าวเหนียวปิ้ง ข้างในมีไส้หวานๆ…

วิธีใช้ ย่อๆ เกี่ยวกับ Matrix กับ Vector ( มาจาก CASIO-991MS manual )

Matrix

เปลี่ยน mode เป็น Matrix
กด mode ไปเรื่อยๆ จนเจอ MAT

วิธีใส่ Matrix เข้าไป
จิ้ม MAT ( ตรงเลข 4 )
DIM -- สร้าง Matrix ใหม่ - เราจะสร้าง Matrix เก็บไว้ในตัวแปรได้สามตัว คือ A, B, C ( Trick : ตอนใส่ค่า a11, a12, .. ถ้าอยากข้ามไปให้กดลูกศร ขึ้น ลง ซ้าย ขวา ได้เลย )
รุ่นนี้ มันใส่ได้มากสุด 3x3 นะ ถ้าใส่ 4 ไป มันจะ dimension error
EDIT -- แก้ไข Matrix ที่สร้างไว้แล้ว
MAT -- เอา Matrix ออกมาใช้งาน

Add : MatA + MatB
Subtract : MatA - MatB
Multiply with scalar : MatA x 3 หรือ 3 x MatA
Multiply : MatA x MatB
Det : Det MatA
Transpost : Trn MatA
Inverse :MatA -1
Absolute Value of Each Element : Abs MatA

ผลลัพธ์มันจะได้เป็น
MatAns11
ซึ่งเราสามารถกด ซ้าย ขวา ขึ้นลงได้เหมือนเลื่อนดู Element จาก Matrix เลย

Vector
เปลี่ยน mode เป็น Vector
กด mode ไปเรื่อยๆ จนเจอ VCT

วิธีใส่ Vector เข้าไป
จิ้ม VCT ( ตรงเลข 5 )
DIM -- สร้าง Vector ใหม่ - เราจะสร้าง Vector เก็บไว้ในตัวแปรได้สามตัว คือ A, B, C ( Trick : ตอนใส่ค่า a1, a2, .. ถ้าอยากข้ามไปให้กดลูกศร ซ้าย ขวา ได้เลย )
EDIT -- แก้ไข Vector ที่สร้างไว้แล้ว
VCT -- เอา Vector ออกม…

อยู่เหงาๆ เราไปเที่ยว - เที่ยวมาเลเซีย โจโฮห์ บาห์รู Johor Bahru Downtown 1 - JB Central, City Square

หยุดวันเสาร์หาทางไปเที่ยวตอนแรก นึกว่าจะไปทัวร์ของรัฐบาล เหมือนตอนเคยไปที่อินเดีย

แต่ทว่า พอไปถามที่ Tourism Office ที่ชั้น 2 ของตึกที่ติดกับ JB Sentral แล้วทัวร์ไม่เหมือนกันขรับ



ของอินเดีย จะเป็นของรัฐบาลจัดเอง แต่ของมาเลเซีย จะเป็น agent ที่ร่วมกับรัฐบาลจัด

นั่นหมายความว่า ต้องไปขึ้นรถที่ agent ซึ่งไกลจาก Tourism Office

โฮฮฮฮ อุตส่าห์ดีใจ ว่า หาทางมา Tourism Office ได้แล้ว นึกว่ายังไงๆ ก็ต้องมาขึ้นรถแถวนี้เพราะ Tourism Office กับ Head Quarter ก็อยู่ใกล้ๆกันด้วย

ปรากฎว่า ทริปที่เล็งไว้ city tour 1 วัน ที่มาเล กลับต้องไปขึ้นรถที่ Taman Universiti (บริษัท ทัวร์ ชื่อ PRIMA SIERRA HOLIDAYS SND BHD) ซึ่งไกลจาก City Square ต้องนั่งรถ แท็กซี่ ไป ถามๆพนักงานinformationของ City Square เขาบอกมี taxi meter นะ

ให้รูปเป็น Soft Copy เผื่อสนใจ หนังสือ ขอได้จาก Tourism Office รู้สึกจะมีทุกรัฐในมาเลเลยแหละ


เลยตัดสินใจเดินเล่น แถวๆนั้น

ตอนแรกขอแผนที่ของ Tourism Office แต่แม่ม สถานที่เล็กเท่าจิ๋มมด แถมไม่แยก Category ด้วย มั่วไปหมด เลยไปขอแผนที่ของโรงแรมแทน

ข้างล่างเป็นแผนที่ Downtown ที่ติดกับสิงคโปร…

อยู่เหงาๆ เราไปเที่ยว - พระปฐมเจดีย์ พระราชวังสนามจันทร์, นครปฐม Sanam Chandra Palace, Nakorn Pathom

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ



กลับมาแบ้วแจ้~~ อันที่จริง ซี่รี่ส์ ท่องเที่ยวอินเดีย ยังไม่จบ น้ะจ้ะ

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



ขอเท้าความ นิดหน่อย

สืบเนื่องมาจาก ปีนี้ วันเกิด ของเรา ตรงกับวันจันทร์

วันอาทิตย์ก่อนหน้าวันจันทร์ ไปบ้านอาม่า อาม่าบ่นอยากกิน ข้าวหลาม

ก็เล่าว่า พอลง รถไฟ นครปฐม ก็มีคนมาขายเลย



ทีแรกตั้งใจว่า เสาร์หน้าจะไปซื้อ แล้ววันอาทิตย์จะเอาไปฝาก

แต่ดูไปดูมา วันจันทร์หยุด ก็เลยไปวันจันทร์เลยละกัน

เป็นที่มา ของ ทริปนี้ แจ้ :)


นครปฐม จ้ะ
Nakorn Pathom, Thailand naja

อันที่จริง อยากจะขยับขยาย ไป ปริมณฑล นานแล้วจ้า

จากที่ ที่เที่ยว ใน กทม. เริ่มหมด ( ดูตอนเก่าๆ ได้ที่นี่ น้ะจ้ะ ) -- ปล. ใครมีที่เที่ยวใหม่ๆ แนะนำ จะเป็นพระคุณยิ่งจ้า

แล้วก็เริ่มเฉื่อยแฉะกับ plan revisit ฮา

แต่ตอนนั้น ยังติดที่ว่า จะไป จังหวัดใกล้เคียงได้อย่างไร

อย่าง พระปฐมเจดีย์ นี้ วางไว้ นานเหมือนกัน

แรกว่า จะขับรถไป แต่ก็ไม่แนวน้ะจ้ะ

พออาม่า เล่าเรื่องข้าวหลาม จึงนึกได้ ว่า นั่งรถไฟไปก็ได้นี่นา !



เที่ยวทั่…

ศูนย์ซ่อม Samsonite ย้าย แบ้วแจ้

และแล้วก็ได้ฤกษ์เอากระเป๋าที่พังไปซ่อมเสียที เป็นหนึ่งในภารกิจหลายอย่างที่ทำตอนวันศุกร์ที่ผ่านมาแจ้

แต่ก่อนเราเคยซ่อม ที่ อาคาร สีลม แกลเลอเรีย น้ะจ้ะ แต่พอวันนี้วกขึ้นไปจอด โทรถามหาเบอร์เก่า ก็ขึ้นเป็น Invalid

เลยลงไปถาม รปภ เขาบอกว่า ย้ายไปแล้ว

ประกาศ!

บริษัท เซ็นทรัลเทรดดิ้ง CMG ย้ายจาก อาคารสีลม แกลเลอเรีย ชั้น G ไปที่ อาคาร สิรินรัตน์ ชั้น 8 ตรงข้าม อาคาร มาลีนนท์ ( ช่อง 3 ) แล้วน้ะจ้ะ

เบอร์โทรใหม่ 02-229-7000

จึงประกาศให้ทราบโดยทั่วกัน ณ จ๊ะ

จะได้ไม่ต้องวกรถขึ้นไปชัั้น 6 เสียค่าจอดอีก 30 บาท แล้วก็เสียเวลาอีกด้วยแจ้

อยู่เหงาๆ เราไปเที่ยว : สวนนงนุช พัทยา ( Nong NoochTropical Garden, Pattaya Thailand )

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ

วันนี้ ได้มีโอกาสไปเยี่ยมชม สวนนงนุช ซึ่งอยู่ไกลถึงพัทยาโน่น

ซึ่งเรา วางแผน ไป-กลับ ภายในวันเดียว เป็น one day trip น่ะ

อันที่จริง สวนนงนุช นี้ #เราเอง ได้ยินครั้งแรก จาก รายการพาเที่ยว รายการหนึ่ง ทางทีวี เห็นว่า เขาจัดสวนไว้ทั้งปี ไม่ต้องรอเทศกาล เหมือน งานพืชสวนโลก อันที่จริง พืชสวนโลก ก็น่าไปนะ เห็นตู้นอนของรถไฟ สวยดีเหมือนกัน ไว้ต้องหาโอกาสไปลองมั่ง

การกลับมีขลุกๆ ขลักๆ เล็กน้อย เพราะว่า ทางเวปอื่นๆ ที่หาข้อมูลมา บอกแต่วิธีไป ไม่บอกวิธีกลับ
ก็แบบ งง อ่ะ ว่า ไปไม่กลับกันเหรอ ตอนขากลับเลยทุลักทุเลไปนิด ดู วิธีเดินทาง กับค่าใช้จ่าย ได้จากล่างสุดของเอนทรี น้ะจ้ะ


Stone Henge
สวนสวยมากเลยแจ้ ที่ชอบก็คือ มี Sky Walk ทำให้มองเห็นภาพมุมสูงได้ด้วย แทนที่จะเป็นแค่ภาพมุมมนุษย์เดินดิน ทั่วๆไปที่ได้เห็นกัน

ตอนแรกนั่ง สามล้อ เข้าไป
แบบว่า งงๆ เพราะว่า เขาเก็บตังค์ตั้งแต่ Main Gate เลย
หลังจากนั้น สามล้อ จะส่งเราที่ Pottery Garden
แบบว่า เง็งเบย เพราะว่า ไม่รู้ว่า สวนกว้างใหญ่ขนาดไหน

ถามคนขายน้ำ เขาก…

อยู่เหงาๆ เลาไปเที่ยว - เที่ยวเชียงรายด้วยตนเอง โดยไม่มีรถ เช่ารถก็ไม่ได้เช่าน้ะจ้ะ นั่งรถสาธารณะล้วนๆแจร้ ตอนที่หก

ดึกแล้ว


ตลาดชา ที่หลัก กิโลเมตร ที่ 0 ดอยแม่สลอง
ขากลับโรงแรม เขาขับรถพาแวะ ตรงตลาดชา ตรงหลัก กม ที่ 0 เพิ่งเห็นว่าสุสานนายพลต้วน ซีเหวิน กองพล 93 ก็อยู่แถวๆนั้น แต่ป้ายบอกว่า 500 เมตรจากตลาดชา ประกอบกับมองไปเป็นทางขึ้นเขา แล้วก้อค่อนข้างมืดด้วยเลยไม่ได้ไป


หลักกิโลเมตรที่ 0 ดอยแม่สลอง

ตอนอยู่บนรถหลังจากกลับจากตลาดชา ลูกเจ้าของรีสอร์ต ยังถามว่าจะแวะเซเว่นเอาอะไรไหม

แล้วตอนเช้าพรุ่งนี้จะพาไปตลาดเช้า ที่ชาวเขาเอาของมาขาย
ประมาณ 7.00 ก่อนกินข้าวเช้าเวลา 08.30 ใจดีจริงๆ

plan เดิมคือ 7.00 เดินไปไร่ชา 101 จากที่ก่อนมาได้โทรไปถามไร่ชาว่าเปิดเจ็ดโมง
แต่มีแนะนำโดยคนในพื้นที่ให้ไปตลาดเช้า
ยัง LINE ไปบอกเพื่อนที่กทม ว่า อาจจะไม่ได้ไปไร่ชาแล้ว
( แต่หลังจากนี้ก้อมีเรื่องจับพลัดจับผลูให้ได้ไปไร่ชาที่ใหญ่กว่า ไร่ชา101 นั่นก้อคือ ไร่ชาฉุยฟง อดใจไว้เด๋วเล่าให้ฟัง )

บรรยากาศยามเย็นที่ตลาดชาที่ดอยแม่สลอง จังหวัดเชียงราย
พอกลับที่พัก คุณเจ้าของรีสอร์ตถามว่าทานมื้อเย็นมายัง
บังเอิญว่าเลาทานมาแล้ว เลาเลยอุดหนุนโกโก้เย็น 60 THB แทน
มีหนุ่มสาวคู่นึงที่ไปด้วยกัน เขายังไม่ทานมา เขาก้อทานที่โรงแรมนั่นแหละ
หนุ่มนี่ม…