bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for the ‘Java’ Category

在 Eclipse 中的 log4j.xml 出現系統找不到 log4j.dtd 警告

在專案中的每個 log4j.xml 中的此行 DOCTYPE log4j:configuration SYSTEM “log4j.dtd” 位置出現警告

警告內容如下:

1
The file cannot be validated as the XML Schema "C:\EclipseWorkspace\SomeProject\src\log4j.dtd (系統找不到指定的檔案。)" that is specified as describing the syntax of the file cannot be located.

試過將 log4j.dtd 複製到同一目錄下,但 Eclipse 還是顯示同樣問題。

將該行改成

1
2
3
<!DOCTYPE log4j:configuration PUBLIC
"-//log4j/log4j Configuration//EN"
"http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/resources/org/apache/log4j/xml/log4j.dtd?view=co">

就可以了。
不過這算是惡搞的處理方法,沒有網路就掛了,有機會還是要搞清楚是否有更適當的解決方案。

Leave a Comment

Eclipse 出現 The content of element type “package” must match … 錯誤

當我在 Eclipse IDE 環境中學習 struts 2 的過程中,進行編輯 struts.xml 時碰到提示下列的問題

The content of element type “package” must match “(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)”.

有問題的 struts.xml 內容大略如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="default" namespace="/" extends="jasperreports-default">
<action name="myJasperTest" class="tw.idv.bestlong.test.action.JasperAction">
<result name="success" type="jasper">
<param name="location">/jasper/our_compiled_template.jasper</param>
<param name="datasource">myList</param>
<param name="format">PDF</param>
</result>
</action>

<result-types>
<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
</result-types>
</package>
</struts>

這是因為沒有依據 DTD 中定義的 Element 順序,所以只要調整內容的順序如下就可以通過檢查了。

1
2
3
4
5
6
7
8
9
10
11
12
13
<package name="default" namespace="/" extends="jasperreports-default">
<result-types>
<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
</result-types>

<action name="myJasperTest" class="tw.idv.bestlong.test.action.JasperAction">
<result name="success" type="jasper">
<param name="location">/jasper/our_compiled_template.jasper</param>
<param name="datasource">myList</param>
<param name="format">PDF</param>
</result>
</action>
</package>

Leave a Comment

讓 Eclipse 支援多種 JDK 版本的設定方式

不同的 Java 專案可能會因為歷史悠久而需要用到不同版本的 JDK 來編譯。
在 Eclipse 的環境下,進入 Window > Preferences > Java > Installed JREs
然後點選 Add 選擇 Standard VM 指定 JRE home 到 JDK 安裝的位置,讓 Eclipse 知道其他 JDK 的存在。

Leave a Comment

使用 jTDS 連接 MSSQL

在 iReport 中連接 MS SQL Server 資料庫可以使用 jTDS
而 jTDS-1.2.2 的預設屬性是支援 8.0 也就是一般稱為 2000 的 SQL Server
一般會設定 JDBC URL 如下

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=

當需要連接 7.0 或是 6.5 等先前版本的 SQL Server 時就會出現下列錯誤訊息

1
2
3
4
5
6
7
Message:
    java.sql.SQLException: I/O Error: Stream 0 attempting to read when no request has been sent
Level:
    SEVERE
Stack Trace:
    net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2307)
...之後省略

這時只要在 JDBC URL 中增加屬性調整 TDS

連接 SQL 7.0

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=;TDS=5.0

連接 SQL 6.5

jdbc:jtds:sqlserver://ServerAddress/DBName;instance=;TDS=4.2

但基本上只有連線到 SQL 6.5 才需要指定,若是連接到 SQL 7.0 時 jTDS 會自動偵測調整。

詳細資料可以參考 jTDS 官方FAQ文件 http://jtds.sourceforge.net/faq.html

Comments (2)

  • 工商服務

    廣告讀取中...
  • 近期迴響

  • 標籤

  • 彙整