ทุกโครงการจะใช้เวลาสักพักในการทำงานกับฐานข้อมูล ในอดีตมันจัดการได้ง่ายเพราะทั้งหมดใช้ TOMCAT5.0 ไม่ว่าจะติดตั้ง ORCALE SQLSERVER2000 หรือ MYSQL ฉันคุ้นเคยกับมันมานานแล้ว แต่ฉันไม่เคยคาดหวังว่าจะใช้ TOMCAT5 อีกต่อไป หากต้องการทำเช่นนี้ ฉันคุ้นเคยกับการใช้ TOMCAT5.5 เฉพาะในวิธีการกำหนดค่า proxool.xml แต่ฉันเชื่อมาโดยตลอดว่า TOMCAT5.5 สามารถใช้ได้ในทุกวิธี เพราะการกำหนดค่าเป็นเพียงวิธีการ
เมื่อวานฉันทำงานทั้งวัน และในที่สุดก็รายงานข้อผิดพลาดเช่น ไม่สามารถสร้างไดรเวอร์ JDBC ของคลาส '' สำหรับการเชื่อมต่อ URL 'null' เมื่อใช้ฐานข้อมูล ฉันคิดว่ามันจะต้องเหมือนเดิม แต่ต้องมีข้อผิดพลาด ไฟล์การกำหนดค่าอยู่ที่ไหนสักแห่ง แต่หลังจากตรวจสอบเป็นเวลานาน ไม่มีแม้แต่คำที่เขียนไว้ ฉันตรวจสอบออนไลน์โดยไม่ได้ตั้งใจ และปรากฏว่ามีพี่น้องหลายคนประสบปัญหาเดียวกันกับฉัน แต่ล้มเหลว ในช่วงระยะเวลา TOMCAT5.0 เราได้กำหนดค่าเช่นนี้ใน XXX.XML ในเส้นทางฐานข้อมูล TOMCAT_HOMEconfCatalinalocalhost
<?xml version='1.0' encoding='utf-8'?>
<บริบท docBase="D:eclipseworkspaceBKGMS" path="/BKGMS" reloadable="true" workDir="D:eclipseworkspaceBKGMSworkorgapachejsp">
<รับรองความถูกต้องทรัพยากร = "คอนเทนเนอร์" name = "RedstoneSql" type = "javax.sql.DataSource"/>
<ชื่อ ResourceParams = "ดีกว่า">
<พารามิเตอร์>
<ชื่อ>โรงงาน</ชื่อ>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</พารามิเตอร์>
<พารามิเตอร์>
<ชื่อ>URL</ชื่อ>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=bkgms</value>
</พารามิเตอร์>
<พารามิเตอร์>
<ชื่อ>รหัสผ่าน</ชื่อ>
<value>sa</value>
</พารามิเตอร์>
<พารามิเตอร์>
<name>maxWait</name>
<value>10,000</value>
</พารามิเตอร์>
<พารามิเตอร์>
<name>maxActive</name>
<ค่า>100</ค่า>
</พารามิเตอร์>
<พารามิเตอร์>
<ชื่อ>ชื่อไดรเวอร์คลาส</ชื่อ>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</พารามิเตอร์>
<พารามิเตอร์>
<ชื่อ>ชื่อผู้ใช้</ชื่อ>
<value>sa</value>
</พารามิเตอร์>
<พารามิเตอร์>
<name>maxIdle</name>
<ค่า>30</ค่า>
</พารามิเตอร์>
</พารามิเตอร์ทรัพยากร>
</บริบท>
ตามวิธีการเขียนของพี่ชาย ให้เพิ่ม <ResourceLink global="better" name="better" type="javax.sql" ก่อน <Resource auth="Container" name="better" type="javax.sql.DataSource"/ > .DataSource"/> สามารถทำได้ แต่หลังจากรีสตาร์ท TOMCAT จะรายงานว่า "ไม่สามารถรับการเชื่อมต่อ: ไม่มีไดรเวอร์ที่เหมาะสม"
ให้ตายเถอะ ฉันคิดว่านี่ใช้งานไม่ได้ ลองตรวจสอบอีกครั้ง พี่น้องส่วนใหญ่บอกว่าการกำหนดค่าของ TOMCAT5.5 และ TOMCAT5.0 นั้นแตกต่างกัน ตั้งแต่ Tomcat5.5 องค์ประกอบ <Resoucepram> ขององค์ประกอบ <context> จึงเปลี่ยนไป ถูกยกเลิก และองค์ประกอบพารามิเตอร์ดั้งเดิมทั้งหมดปรากฏเป็นแอตทริบิวต์ของทรัพยากร
แต่ควรเขียนแบบนี้โดยเพิ่ม <ResourceLink> แทน
<?xml version='1.0' encoding='utf-8'?>
<บริบท docBase="D:eclipseworkspaceBKGMS" path="/BKGMS" reloadable="true" workDir="D:eclipseworkspaceBKGMSworkorgapachejsp">
<ทรัพยากร auth = "คอนเทนเนอร์" name = "ดีกว่า" type = "javax.sql.DataSource" maxWait = "10000" maxIdle = "30" maxActive = "100" ชื่อผู้ใช้ = "sa" รหัสผ่าน = "sa" driverClassName = "com .microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=bkgms"/>
<ResourceLink global = "ดีกว่า" name = "ดีกว่า" type = "javax.sql.DataSource"/>
</บริบท>
อธิบาย: 1.path คือรายการ URL ที่ระบุการเข้าถึงเว็บแอปพลิเคชัน
ซึ่ง
อาจเป็นเส้นทางที่แน่นอนหรือเส้นทางสัมพันธ์ที่สัมพันธ์กับแอตทริบิวต์ appBase ของโฮสต์
ประเภท
4.maxActive คือจำนวนการเชื่อมต่อฐานข้อมูลสูงสุดใน DBCP 0 หมายถึงไม่จำกัด
5. maxIdle คือจำนวนการเชื่อมต่อฐานข้อมูลสูงสุดใน
DBCP การเชื่อมต่อที่จะไม่ได้ใช้งาน (เป็นมิลลิวินาที) คือ 0 ซึ่งหมายถึงการรออย่างไม่มีกำหนด
7. ชื่อผู้ใช้คือชื่อเข้าสู่ระบบฐานข้อมูล
9.
รหัสผ่านคือไดรเวอร์ jdbc สำหรับฐานข้อมูล
เท่านั้น ระบุ URL ที่จะเชื่อมต่อกับฐานข้อมูล testDBCP คือชื่อฐานข้อมูลของฉัน
รายงาน "ไม่สามารถรับการเชื่อมต่อ: ไม่มีไดรเวอร์ที่เหมาะสม"
คือการเริ่ม Tomcat จาก eclipse พบว่า org.apache.commons.dbcp.BasicDataSourceFactory ไม่พบในระหว่างการเริ่มต้นระบบ ดังนั้น Factory="org.apache.commons.dbcp. มีรายงาน BasicDataSourceFactory" ในองค์ประกอบ Resouce "ลบและข้อผิดพลาดได้รับการแก้ไขแล้ว
แน่นอนอย่าลืมเพิ่มใน web.xml
<ทรัพยากร-อ้างอิง>
<description>การเชื่อมต่อฐานข้อมูล</description>
<res-ref-name>ดีกว่า</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>คอนเทนเนอร์</res-auth>
</ทรัพยากร-อ้างอิง>
อย่างไรก็ตาม หากคุณใช้ SQLSERVER2000 คุณต้องตรวจสอบให้แน่ใจด้วยว่ามีการใช้แพตช์ SP4