Total Pageviews
2011/10/10
2011/10/07
如何在iReport中設定欄位高度依據其內容而延展
Problem
當textfield中,資料長度過長時,過長的部份會被截掉,希望若遇到過長的部份能夠折行處理。
Solution
利用iReport打開jrxml file,點選特定的textfield
將Stretch With Overflow此選項打勾即可。
Result
當textfield中,資料長度過長時,過長的部份會被截掉,希望若遇到過長的部份能夠折行處理。
Solution
利用iReport打開jrxml file,點選特定的textfield
將Stretch With Overflow此選項打勾即可。
Result
Labels:
iReport,
JasperReport
2011/10/05
How to count the total number of records in JasperReports
Objective
We would like to show the total number of records at the end of report:
How to do it
It's very easy and straightforward, just utilize the build-in variable (REPORT_COUNT), drag and drop the build-in variable into report. That's all.
Labels:
JasperReport
2011/09/23
There are no resources that can be added or removed from the server
Today I simply would like to deploy my ear file to WAS (Web Application Server) as usual.
But it fail to find my EAR file:
I spent more than two hours to find its root cause and solution. But it's still in vain.
Finally, I decide to give up. I just switch to another workspace and check out source code from SubVersion, then it's going to normal. I don't know why!
Labels:
Eclipse
2011/09/22
2011/09/21
2011/09/17
net.sf.json.JSONException: org.apache.openjpa.lib.util.ParseException
Scenario
當使用者輸入異常代號,系統要自動帶出違章編號、徵銷管理代號、應納金額、已納金額等欄位。
Problem
在Controller,我們會去呼叫後端service class,根據使用者所輸入的異常代號進行搜尋,帶回符合條件的entity(i.e. NIGT900),但是在轉成JSONObject的時候,出現下列錯誤訊息:
net.sf.json.JSONException: org.apache.openjpa.lib.util.ParseException: Errors occurred while creating property descriptors for the following properties: [RefreshFromDataCache, CacheMarshallers, jdbc.QuerySQLCache, jdbc.CollectionId, AccessIntent].
at net.sf.json.JSONObject._fromBean(JSONObject.java:987) ~[json-lib-2.3-jdk15.jar:na]
Root Cause
由於回傳的entity(i.e. NIGT900)有一個資料型態為Timestamp的欄位,導致會出現此錯誤
Solution
利用JsonConfig將timeStamp欄位exclude掉
Result
當使用者輸入異常代號,系統要自動帶出違章編號、徵銷管理代號、應納金額、已納金額等欄位。
Problem
在Controller,我們會去呼叫後端service class,根據使用者所輸入的異常代號進行搜尋,帶回符合條件的entity(i.e. NIGT900),但是在轉成JSONObject的時候,出現下列錯誤訊息:
net.sf.json.JSONException: org.apache.openjpa.lib.util.ParseException: Errors occurred while creating property descriptors for the following properties: [RefreshFromDataCache, CacheMarshallers, jdbc.QuerySQLCache, jdbc.CollectionId, AccessIntent].
at net.sf.json.JSONObject._fromBean(JSONObject.java:987) ~[json-lib-2.3-jdk15.jar:na]
Root Cause
由於回傳的entity(i.e. NIGT900)有一個資料型態為Timestamp的欄位,導致會出現此錯誤
Solution
利用JsonConfig將timeStamp欄位exclude掉
Result
Labels:
JSON
2011/09/15
How to Organize Imports Automatically in Eclipse
Problem
When using Eclipse, I find myself typing Ctrl+Shift+O several times, to organize imports (usually imports which are no longer required, generating warnings).
Solution
Preferences->Java->Editor->Save Actions->Check "Perform the selected actions on save" --> Check "Organize Imports"
See....after save action had been trigger, it will organize imports automatically
When using Eclipse, I find myself typing Ctrl+Shift+O several times, to organize imports (usually imports which are no longer required, generating warnings).
Solution
Preferences->Java->Editor->Save Actions->Check "Perform the selected actions on save" --> Check "Organize Imports"
See....after save action had been trigger, it will organize imports automatically
Labels:
Eclipse
2011/09/10
2011/09/09
JPA Annotation @JoinColumn / @JoinColumns 應用
Scenario
我們在利用JPA(Java Persistence API)的時候,code generator會自動幫table之間有關連的部份產生出來,但是在實際應用上,有可能table之間沒有關連性,但是卻需要來做join抓取資料的需求。
此時就要自行在該entity上宣告變數與join的欄位。若是single column的狀況下,可以採用@JoinColumn,若是composite column的話,可以採用@JoinColumns。
Demo
NIGT001與NIGT007雖然沒有relationship,但是在實際應用上,常會做JOIN,彼此透過single column來做Join
在原本的NIGT001增加nigt007此attribute,並產生setter/getter methods,註明兩張table之間的relationship,name的部份是NIGT001的欄位,referencedColumnName的部份是NIGT007的欄位名稱,此二table彼此是透過上述欄位來進行join
NIGT001與NIGT022雖然沒有relationship,但是在實際應用上,常會做JOIN,彼此透過composite column來做Join
在原本的NIGT001增加nigt022此attribute,並產生setter/getter methods,註明兩張table之間的relationship,name的部份是NIGT001的欄位,referencedColumnName的部份是NIGT022的欄位名稱,此二table彼此是透過上述欄位來進行join
我們在利用JPA(Java Persistence API)的時候,code generator會自動幫table之間有關連的部份產生出來,但是在實際應用上,有可能table之間沒有關連性,但是卻需要來做join抓取資料的需求。
此時就要自行在該entity上宣告變數與join的欄位。若是single column的狀況下,可以採用@JoinColumn,若是composite column的話,可以採用@JoinColumns。
Demo
NIGT001與NIGT007雖然沒有relationship,但是在實際應用上,常會做JOIN,彼此透過single column來做Join
在原本的NIGT001增加nigt007此attribute,並產生setter/getter methods,註明兩張table之間的relationship,name的部份是NIGT001的欄位,referencedColumnName的部份是NIGT007的欄位名稱,此二table彼此是透過上述欄位來進行join
NIGT001與NIGT022雖然沒有relationship,但是在實際應用上,常會做JOIN,彼此透過composite column來做Join
在原本的NIGT001增加nigt022此attribute,並產生setter/getter methods,註明兩張table之間的relationship,name的部份是NIGT001的欄位,referencedColumnName的部份是NIGT022的欄位名稱,此二table彼此是透過上述欄位來進行join
Labels:
JPA
Checkbox/Radio Button filters with jQuery
Scenario
當使用者輸入查詢條件,並按下查詢按鈕,系統會自動將符合條件的資料呈現於data grid中,使用者選擇某筆資料,點選查詢
當使用者點選查詢後,系統會將資料庫的資料帶入dialog中:
系統會根據欄位值來決定radio button要預設選擇哪一個,以及決定checkbox是否要打勾
Radio button
原本的寫法:
採用filter的寫法:
Checkbox
原本的寫法:
採用filter的寫法:
有關filter的文件,請參考:http://api.jquery.com/filter/
當使用者輸入查詢條件,並按下查詢按鈕,系統會自動將符合條件的資料呈現於data grid中,使用者選擇某筆資料,點選查詢
當使用者點選查詢後,系統會將資料庫的資料帶入dialog中:
系統會根據欄位值來決定radio button要預設選擇哪一個,以及決定checkbox是否要打勾
Radio button
原本的寫法:
採用filter的寫法:
Checkbox
原本的寫法:
採用filter的寫法:
有關filter的文件,請參考:http://api.jquery.com/filter/
Labels:
jQuery
2011/09/08
net.sf.json.JSONException: There is a cycle in the hierarchy!
Problem
I apply JPA(Java Persistence API) to do search via primary key, then it return an object to me. And I would like to covert this object to JSONObject, it show this error message.
1 2 3 4 5 6 7 | net.sf.json.JSONException: There is a cycle in the hierarchy! at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97) at net.sf.json.JSONObject._fromBean(JSONObject.java:674) at net.sf.json.JSONObject.fromObject(JSONObject.java:181) at net.sf.json.JSONArray._processValue(JSONArray.java:2381) at net.sf.json.JSONArray.processValue(JSONArray.java:2412) Truncated. see log file for complete stacktrace |
The code snippet as shown below
Root Cause
Because the entity you return has many-to-one relationship, so you need to filter them out.
Solution
Reference: http://json-lib.sourceforge.net/snippets.html
Labels:
JSON
2011/09/07
How to Automatically Add Javadoc and File Headers to Your Source Code
Problem
In our project, we need to fix all checkstyle checking errors. One of the most annoying error is missing a Javadoc comment.
Solution
We can install an Eclipse Plugin, JAutodoc, to help us.
JAutodoc is an Eclipse Plugin for automatically adding Javadoc and file headers to your source code. It optionally generates initial comments from element name by using Velocity templates for Javadoc and file headers.
Official site: http://jautodoc.sourceforge.net/index.html
Where to download?
How to Install?
1. Before you install, please shutdown your eclipse
2. copy two jar files to plugins folder
3. copy one feature folder to features folder
4. Restart Eclipse
How to Use?
Select a single or multiple class(es): right click --> JAutodoc --> Add Javadoc
JAutodoc will generate comments from element name as shown below
JAutodoc will generate comments from method name as shown below
In our project, we need to fix all checkstyle checking errors. One of the most annoying error is missing a Javadoc comment.
Solution
We can install an Eclipse Plugin, JAutodoc, to help us.
JAutodoc is an Eclipse Plugin for automatically adding Javadoc and file headers to your source code. It optionally generates initial comments from element name by using Velocity templates for Javadoc and file headers.
Official site: http://jautodoc.sourceforge.net/index.html
Where to download?
How to Install?
1. Before you install, please shutdown your eclipse
2. copy two jar files to plugins folder
3. copy one feature folder to features folder
4. Restart Eclipse
How to Use?
Select a single or multiple class(es): right click --> JAutodoc --> Add Javadoc
JAutodoc will generate comments from element name as shown below
JAutodoc will generate comments from method name as shown below
Labels:
Tools
2011/09/05
How to Adjust Your Eclipse's Tab Policy to Spaces Only
1. Window --> Preference
2. Use "formatter" as keyword to search --> New
3. Give it a new name in New Profile dialog --> Click OK
4. In General Settings, choose "Spaces Only" in Tab policy
5. Click OK
Labels:
Eclipse
2011/09/03
ADMA0174E: The filepermission argument contains an invalid formator contains an invalid regular exp
Problem
As I try to deploy my ear file to WAS(WebSphere Application Server), it show this error message
Solution
The root cause is still unknown, but if I remove the ear file and add it again. This problem is gone.
As I try to deploy my ear file to WAS(WebSphere Application Server), it show this error message
[10/09/03 15:22:21:394 GMT] 00000031 SystemErr R com.ibm.websphere.management.exception.AdminExcept ion: ADMA0174E: The filepermission argument contains an invalid format or contains an invalid regular expression pattern: {0}. Correct format is file_pattern=permission. Multiple filepermissions are separated by a # (Example: .*\.jsp=644#.*\.xml=744).
[10/09/03 15:22:21:394 GMT] 00000031 SystemErr R at com.ibm.ws.management.application.UpdateSchedulerI mpl.validateParams(UpdateSchedulerImpl.java:301)
[10/09/03 15:22:21:394 GMT] 00000031 SystemErr R at com.ibm.ws.management.application.UpdateSchedulerI mpl.setupTasks(UpdateSchedulerImpl.java:214)
[10/09/03 15:22:21:410 GMT] 00000031 SystemErr R at com.ibm.ws.management.application.SchedulerImpl.ru n(SchedulerImpl.java:250)
[10/09/03 15:22:21:410 GMT] 00000031 SystemErr R at java.lang.Thread.run(Thread.java:797)
[10/09/03 15:22:33:301 GMT] 00000034 SystemErr R com.ibm.websphere.management.exception.AdminExcept ion: ADMA0174E: The filepermission argument contains an invalid format or contains an invalid regular expression pattern: {0}. Correct format is file_pattern=permission. Multiple filepermissions are separated by a # (Example: .*\.jsp=644#.*\.xml=744).
[10/09/03 15:22:33:301 GMT] 00000034 SystemErr R at com.ibm.ws.management.application.UpdateSchedulerI mpl.validateParams(UpdateSchedulerImpl.java:301)
[10/09/03 15:22:33:301 GMT] 00000034 SystemErr R at com.ibm.ws.management.application.UpdateSchedulerI mpl.setupTasks(UpdateSchedulerImpl.java:214)
[10/09/03 15:22:33:301 GMT] 00000034 SystemErr R at com.ibm.ws.management.application.SchedulerImpl.ru n(SchedulerImpl.java:250)
[10/09/03 15:22:33:301 GMT] 00000034 SystemErr R at java.lang.Thread.run(Thread.java:797)
Solution
The root cause is still unknown, but if I remove the ear file and add it again. This problem is gone.
Labels:
WebSphere
2011/09/01
@Autowire is not working properly in my spring application
Problem
From my @Controller, i can easily access my autowired @Service class and play with it no problem. But when I do that from a separate class without annotations, it gives me a NullPointerException.
Solution
Spring dependency injection works only in components managed by Spring.
By default, classes annotated with @Component, @Repository, @Service, @Controller, or a custom annotation that itself is annotated with @Component are the only detected candidate components.
If your class is not managed by Spring (i.e. is not a Spring bean), @Autowired doesn't work inside it.
From my @Controller, i can easily access my autowired @Service class and play with it no problem. But when I do that from a separate class without annotations, it gives me a NullPointerException.
Solution
Spring dependency injection works only in components managed by Spring.
By default, classes annotated with @Component, @Repository, @Service, @Controller, or a custom annotation that itself is annotated with @Component are the only detected candidate components.
If your class is not managed by Spring (i.e. is not a Spring bean), @Autowired doesn't work inside it.
Labels:
Spring
Subscribe to:
Posts (Atom)