Jboss jsp compile folder
Jboss 5 의 JSP Compiler 폴더 경로
C:\jboss5\server\default\work\jboss.web\localhost\_\org\apache\jsp
jsp파일 변경이 있음에도.. jboss에서 새로운 파일을 인식하지 못하는 경우가 있다..
jsp compil 경로내의 파일을 확인해 보면 역시...그대로다..-_-;
저넘을 지워주고 새로 실행해보자.
Edward. K
메멘토적 기억능력을 소유한 개발자 노트.
- JBOSS5 datasource ERROR
..
..
java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'.
Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool.
Cause: javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: SettlementDS not bound]
com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)
..
..
javax.naming.NameNotFoundException: SettlementDS not bound
[ 해결]
JNDI 설정을 하지 않고서 사용하려고 했다..-_-;
C:\jboss5\docs\examples\jca\
|_ 해당 폴더에서 DB 에 해당되는 파일을 가져와서 다음 경로에 copy, datasource 설정 적용
C:\jboss5\server\default\deploy\mysql-ds.xml
o. JNDI 없이 사용할 경우
dbs.properties
C:\jboss5\server\default\deploy\ROOT.war\WEB-INF\dbs.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/pg
user=ID
pword=PASSWORD
---------------------------------
SqlMapConfigS.xml
C:\jboss5\server\default\deploy\ROOT.war\WEB-INF\SqlMapConfigS.xml
<properties resource="dbs.properties"/>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${user}"/>
<property name="JDBC.Password" value="${pword}"/>
<!-- optional properties below -->
<property name="Pool.MaximumActiveConnectinos" value="100"/>
<property name="Pool.MaximumIdleConnections" value="50"/>
<property name="Pool.MaximumCheckoutTime" value="120000"/>
<property name="Pool.TimeToWait" value="10000"/>
<property name="Pool.PingQuery" value="select * from ibatis_pool_ping_check"/>
<property name="Pool.PingConnectionsOlderThan" value="0"/>
<property name="Pool.PingConnectionsNotUsedFor" value="0"/>
</dataSource>
</transactionManager>
--------------------------------------
Test.xml( sqlmap) ,Test.java 그대로 사용.
1. JNDI 추가
C:\jboss5\docs\examples\jca 폴더에서 DB에 해당되는 설정 파일을
C:\jboss5\server\default\deploy (서비스 ROOT)폴더에 복사한다.
본인은Mysql을 사용하므로 mysql-ds.xml 파일을 복사하였다.
<local-tx-datasource>
<jndi-name>JNDI명</jndi-name>
<connection-url>jdbc:mysql://127.0.0.1:3306/pg?useUnicode=true&characterEncoding=EUC_KR</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>ID</user-name>
<password>PASS</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/JNDI명</res-ref-name>
<jndi-name>java:/JNDI명</jndi-name>
</resource-ref>
</jboss-web>
<web-app>
<display-name>Welcome to JBoss</display-name>
<description>
Welcome to JBoss
</description>
<servlet>
<servlet-name>Status Servlet</servlet-name>
<servlet-class>org.jboss.web.tomcat.service.StatusServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Status Servlet</servlet-name>
<url-pattern>/status</url-pattern>
</servlet-mapping>
<resource-ref>
<description>리소스설명</description>
<res-ref-name>jdbc/JNDI명</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
<sqlMapConfig>
<settings useStatementNamespaces="false"
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="512"
maxSessions="128"
maxTransactions="32"/>
<transactionManager type="JDBC" commitRequired="true">
<dataSource type="JNDI">
<property name="DBJndiContext" value="java:comp/env/jdbc/JNDI명"/>
</dataSource>
</transactionManager>
<sqlMap resource="Test.xml"/>
</sqlMapConfig>
<sqlMap namespace="sqlmap명">
<select id="sqlQuery명" resultClass="hashmap">
<![CDATA[
select no, dt, col1 from aa
]]>
</select>
</sqlMap>
package service;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.ibatis.common.resources.*;
import com.ibatis.sqlmap.client.*;
public class Test{
public Test() {};
public Iterator getTest() throws SQLException, Exception {
Reader reader = Resources.getResourceAsReader("SqlMapConfigDS.xml");
SqlMapClient client = SqlMapClientBuilder.buildSqlMapClient(reader);
List someList = client.queryForList("sqlQuery명");
return someList.iterator();
}
}
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.io.*, java.util.* " %>
<%@ page import = "service.Test" %>
<%
Test htest = new Test();
Iterator<HashMap> iter = htest.getTest();
%>
<html>
<head><title></title></head>
<body>
<h1>TEST</h1><br>
<%= new java.util.Date() %><br><br>
<%
while(iter.hasNext()) {
HashMap data = iter.next();
%>
<br><%= data.get("no")%>,<%= data.get("dt")%>,<%= data.get("col1")%>
<%
}
%>
</body>
</html>
본인 로컬 환경
- Windows
- Jboss5
- JDK6
- Eclipse 3.4 (Ganymede)
다음처럼 request.getParameter 로 받아오는 post /get 한글 데이터의 경우
String merchantName = request.getParameter("merchantName");
한글이 깨지게 되어 화면 자체가 보여지지 안는 오류가 발생하게 된다.
다음과 같이 한글 인코딩을 설정해주도록 하자.
1. JSP 에서의 인코딩 방식 추가
request.setCharacterEncoding("euc-kr");
Jboss5에선 다음과 같이 URIEncoding을 추가해주자.
2.Jboss5에서의 설정파일 위치
> C:\jboss5\server\default\deploy\jbossweb.sar\server.xml
실서버
- Linux
- Jboss5
- JDK6
로컬
- Windows
- Jboss5
- JDK6
- Eclipse 3.4 (Ganymede)
로컬에서의 테스트를 위해 로컬에 1. JBOSS 설치/실행
그리고 2. Eclipse 에서 Jboss 실행 환경을 설정할 것이다
1. JBOSS 다운로드
http://www.jboss.org/jbossas/downloads/ : 5.0.0.GA
> http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=16942&release_id=645033
3. JBOSS 실행
1.번항목을 통해 다운받은 압축 파일을 풀고 원하는 곳에 복사를 진행했다.
( 본인은 C:\jboss5 폴더에 복사를 진행했다.)
실행은 C:\jboss5\bin\run.bat 로 실행을 한다.
4. JBOSS webpage 확인
서버가 실행된 것을 확인(cmd 창의 Started in xxxxx )하고 웹페이지 접속을 한다.
http://127.0.0.1:8080/
Eclipse 에서 JBoss Plugin 설치
0. Eclipse Plugin 정보 : Eclipse Jboss Download 사이트
> http://www.jboss.org/tools/download/index.html
1. eclipse plugin 다운로드
'2. Eclipse Plugin Update' 방법을 사용하도록 하자.
아래 링크 'JBossTools 3.0.0.CR1n' 을 선택하여 다운로드, Eclipse/plugin 폴더에 복사
> http://www.jboss.org/tools/download/index.html
|_ All Plugins - Windows ( 본인이 3.4.x genemade 버젼 )
2. Eclipse Plugin Update를 사용하여 pulgin install.
다음 두개의 사이트를 등록하고 update진행
Stable Updates: http://download.jboss.org/jbosstools/updates/stable
Development Updates: http://download.jboss.org/jbosstools/updates/development
( ☆ updata site Add 방법은 [ Eclipse WTP Plugin ] 을 참고하세요 )
detail을 참고하여 에러발생한 넘을 제거해보자..
1. EClipse Server 추가