검색결과 리스트
웹프로그램/Tomcat에 해당되는 글 5건
- 2012.07.11 에러 :::: Server modules without publishing
- 2008.10.19 FLEX 엔코딩관련하여 TOMCAT 설정
- 2008.10.17 tomcat 디렉토리 보안
- 2008.03.21 Connection pool
- 2008.03.13 MS-SQL 2005 Tomcat _ Context 설정
글
Server modules without publishing 체크한 위에 보면...
Open launch configuration 이라고 있는데... 클릭해서 창을 띄운 후
Classpath 탭에 Bootstrap Entries 에서 Add External JARs... 로
톰캣 디렉토리 lib 폴더에 있는 servlet-api.jar 를 추가 하니까...
해결(?) 되네요...
javax.servlet.Filter 를 찾는것이니...
일단 위의 에러는 나지 않습니다...
설정
트랙백
댓글
글
FLEX는 encoding을 'utf-8'을 사용하고, JSP는 encoding을 'euc-kr'을 사용합니다. 그런데 tomcat을 encoding 방식을 한가지로 제공합니다. 이것때문에 2가지 이상의 Encoding방식이 필요한 경우 문제가 발생합니다. 즉, service.xml을 아래와 같은 방식으로 작성할 경우 FLEX에서 JSP로 정보가 넘어갈 때 한글은 깨어지게됩니다.
<Connector ...... URIEncoding="euc-kr" />
이럴 경우 각 페이지마다 필요한 encoding방식을 지정해야합니다.
즉, FLEX에서 JSP로 정보가 넘어올 경우만 "utf-8", 그 외는 "euc-kr"로 말입니다.
이렇게 할려면
1. service.xml에 URIEncoding="euc-kr"은 없애고 useBodyEncodingForURI="true"을 추가한다.
<Connecter .... useBodyEncodingForURI="true">
2. 각 JSP에 request.setCharacterEncoding()을 필요한 encoding방식을 설정합니다.
utf-8이 필요할 경우는 request.setCharacterEncoding("utf-8")로
euc-kr이 필요할 경우는 request.setCharacterEncoding("euc-kr")로합니다.
참고로 tomcat version은 5.5.12입니다.
설정
트랙백
댓글
글
Tomcat으로 웹 어플리케이션을 돌릴 때 디렉토리를 URL로 지정하면 그냥 디렉토리 목록이 보인다.
보안상 매우 안 좋다.
$CATALINA_HOME/conf/web.xml 에 보면 (각 웹 컨텍스트의 web.xml이 아니다.)
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
listings 파라미터를 false로 하면 그 이후부터 디렉토리를 URL로 주면 오류 메시지가 뜬다.
설정
트랙백
댓글
글
대부분의 어플리캐이션에서 가장 부하가 많이 걸리는 부분은 DB 에 접속 하는 부분이라고 합니다. 그에따라 대부분의 상용 사이트 혹은 동시접속자가 생기는 솔루션의 경우에는 DataBase Pool 이라는 기법을 이용하여 Connection 되어있는 객체를 생성하고, 요구사항이 있을때 임대해 주는 방식을 많이 사용합니다. 이 부분을 직접 작성해 보는것 또한 많은 것을 학습할 수 있는 기회가 되지만, 실제 서비스되는 곳에 실험적으로 만들어진 코드를 사용하기는 현실적으로 많이 어려운것 같습니다.
따라서 apache 재단의 Java 서브 프로젝트인 jakarta 에서 DBCP 라는 프레임워크(?) 많이들 이용하고 있습니다. 물론, 학습시에 말이죠. :-)
자바를 배워 나아간다는것은, 영업직들의 화려한 활약으로 인해서 EJB 가 필수적인 스킬이 되어 가고 있는 상황이고 EJB 라는 녀석 자체가 초기 투자비용이 워낙 큰 녀석이다보니 WAS 에서 학습시에 세팅에 열을 올리는 대부분의 것들을 자체적으로 지원해 주기 마련입니다. 그래서 DBCP(DB Connection Pool) 에 대한 전반적인 지식이 없이 EJB 로 넘어가는 사례를 많이 보곤 합니다. 하지만 제가 항상 강조하듯이 지식을 끌어안지 못하고 과정을 학습하는것은, 차후에 그것을 기반으로 한 상위의 무언가를 배울때 걸림돌이 될 것이 확실하다고 생각합니다.
그래서 결론은, 'DBCP 에 대한 전반적인 지식을 끌어안고 상위로 나아가자' 가 되겠죠. :-)
항상 포스팅을 할 때마다 느끼는것이지만, 사설이 너무 길어지는거 같습니다.
1> 라이브러리 복사.
2> server.xml ==> <Resource /> 추가
3> context.xml 혹은 server.xml ==> <ResourceLink /> 추가
4> web.xml ==> <resource-ref> ... </resource-ref> 추가
5> TEST!!
1-1> DBCP 라이브러리 복사.
common-collections-3.2.jar
common-dbcp-1.2.1.jar
common-pool-1.3
위의 3개 파일을 <context>/WEB-INF/lib 디렉토리에 복사.
1-2> oracle JDBC 드라이버 파일 복사.
ojdbc14.jar
위 파일을 <context>/WEB-INF/lib 디렉토리에 복사.
[<TOMCAT_HOME>/common/lib 디렉토리에 복사]
2> server.xml 파일의 <GlobalNamingResources> 의 내부태그로 <Resource /> 추가
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/project" password="tiger" type="javax.sql.DataSource" url="jdbc:oracle:thin:@127.0.0.1:1521:xe" username="scott" />
3> context.xml 혹은 server.xml 파일의 <Context> 의 내부태그로 <ResourceLink /> 추가
<ResourceLink global="jdbc/project" name="jdbc/project" type="javax.sql.DataSource" />
4> web.xml 파일에 <resource-ref> 추가.
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/project</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
5> TEST!!퍼온곳 http://blog.rooine.com/trackback/8 입니다.
<%@ page contentType="text/html" pageEncoding="UTF-8"
import="java.sql.*"
import="javax.sql.*"
import="javax.naming.*"
%>
<html>
<head>
<title></title>
</head>
<body>
<%
try {
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:/comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/project");Connection conn = ds.getConnection();
out.write("DB Connection..");
conn.close();
}
catch(Exception e) {
e.printStackTrace();
}
%>
</body></html>
설정
트랙백
댓글
글
Context 설정 MS - SQL - 2005
------------------------------------------------------------------------------
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" debug="5" docBase="사용자" path="/사용자" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="사용자log." suffix=".txt" timestamp="true"/>
<Resource auth="Container" name="umsdb" type="javax.sql.DataSource"/>
<Resource auth="Container" description="사용자명 Conntion Pool" name="Catalina/localhost/사용자위치" type="javax.sql.DataSourcee"/>
<ResourceParams name="umsdb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>password</name>
<value>패스워드</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://아이피:포트;DatabaseName=DB명</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>username</name>
<value>아이디</value>
</parameter>
</ResourceParams>
</Context>
위에 2부분이 병경되었다.
jar 파일은 열어보면 해드오류 난다 머리가없는것이다.
RECENT COMMENT