기술지원 문의

필독~!SOS~!! IIS5.0+jsdk1.3.1_06+resin2.1.6+MSSQL7.0
오진주 / 2002-12-12 00:00

필독~!SOS~!! IIS5.0+jsdk1.3.1_06+resin2.1.6+MSSQL7.0+jdbc 

IIS5.0+jsdk1.3.1_06+resin2.1.6+MSSQL7.0+jdbc

*****************iis5.0********************
IIS5.0에서 홈 디렉토리를 D:\\www로 설정 했습니다.
D:\\www<==Web site입니다.
TCP 포트는 80입니다.
웹사이트 운영자를 Administrator로 지정했습니다.
ISAPI 필터를 추가했습니다.
D:\\www\\jsp\\isapi_srun.dll
문서를 index.htm, Defalut.htm, Default.asp로 주었습니다.
디렉터리 보안에서 익명 액세스 및 인증 제어 : 익명 액세스, 윈도우즈 통합 인증에 체크 했습니다.
디렉터리 보안에서 ip주소 및 도메인 이름 제한 : 액세스 허가에 체크햇습니다.
http헤더 건드린거 없습니다. 비었습니다. 그대로입니다.
사용자 정의 오류 그대로입니다.
Server Extensions 그대로입니다. 

*****************jdk1.3.1_06********************
SUN 사이트에서 jdk1.3.1_06을 받아서 설치했습니다. j2se입니다.
시작-실행-sysedit-autoexec.bat => SET PATH=C:\\jdk1.3.1_06\\bin;%PATH%
해주었습니다.

*****************resin-2.1.6********************
www.caucho.com에서 resin2.1.6을 다운로드 받았습니다. 
unzip resin-2.1.6을 했습니다.
resin-2.1.6/bin/httpd를 실행했습니다.
http://localhost:8080에서 확인하니까 잘 실행되더군요.
dos에서 c:>resin-2.1.6\\bin\\httpd -install -conf/myconf.conf로 컴퓨터 관리 콘솔에
서비스에 자동으로 실행되게 등록해주었습니다.
웹서버를 중단시키고 c:\esin-2.1.6\\bin\\httpd\\setup.exe를 실행해서
resin home => C:\esin-2.1.6 
IIS/PWS => c:\\inetpub\\scripts이렇게 되어 있던 것을
IIS/PWS => D:\\www\\jsp로 바꿔주었습니다.
c:\esin-2.1.6\\conf\esin.conf 파일을 울트라에디터로 열어서
60라인쯤에 있는 밑에 부분에 

  
  D:\\www\\jsp

  
  

이렇게 변경해주었습니다.

그리고 나중에 c:\esin-2.1.6\\conf\\samples밑에
apache.conf, debug.conf, deploy.conf, iis.conf, load_balance.conf, resin.conf, servlet.conf, simple.conf, virtual_host.conf
이걸 다 열어서 필요하다 생각되는 부분에 D:\\www\\jsp로 변경시켜주었습니다.
필요하시면 conf 파일 다 첨부할 수 있습니다.


*****************jdbc********************
sql7.0은 자리에 깔려있습니다.
하지만 제가 sql서버로 쓸려고 하는 것은 원격지에 있는 sql2000서버입니다.
서버이름이 abc(windows nt)입니다.
Databases 밑에 ETC2라는 db가 있으며
그 밑에 table이 있습니다. table명은 adress입니다.
Create Login Wizard를 사용하여 jdbcuser라는 사용자와 패스워드를 지정해주고
그 테이블에 퍼미션을 주었습니다.

그 후
http://www.microsoft.com/korea/msdn/MSDN-FILES/027/001/779/msdncompositedoc.asp에서
Microsoft SQL Server 2000 Driver for JDBC를 다운로드 받아 setup.exe를 실행했습니다.
그 다음 C:\\Program Files\\Microsoft SQL Server 2000 Driver for JDBC\\lib에 있는
msbase.jar, mssqlserver.jar, msutil.jar파일을 복사하여
C:\\jdk1.3.1_06\\jre\\lib\\ext 에 붙여넣었습니다.

*************************************

아 참 
D:\\www\\jsp에 resin.ini 파일을 아래와 같이 만들어주었습니다.
CauchoConfigFile C:\esin-2.1.6\\conf\esin.conf

D:\\www\\jsp에 isapi_srun.dll도 생성시켰습니다.
이것이 c:\esin-2.1.6\\bin\\httpd\\setup.exe에서 고쳐줄때 자동으로 생긴건지
아님 제가 임의로 복사해다가 붙여준건지 헷갈리네요.
아시는 분 글 좀 남겨주이소~!
isapi_srun.dll 검색해보니 
C:\\Inetpub\\scripts
C:\esin-2.1.6\\libexec
D:\\www\\jsp
이렇게 세군데나 있군요.
아~ 어떻게 했더라--;;

홈디렉토리에 대한 설명
D:\\www는 홈디렉토리이고
D:\\www\\asp는 asp파일 모아두고 쓸 홈디렉토리이고
D:\\www\\jsp는 jsp파일을 모아두고 슬 홈디렉토리입니다.
아..이거 말이 되나--;;
암튼 그렇습니다.



*************************************
암튼 현재 요러한 상황에서 웹서버를 실행하고
레진도 실행하고
http://localhost:8080을 하면

Directory of /
examples 
first_jdbc.jsp 
first_jdbc2.jsp 
first_jdbc3.jsp 
isapi_srun.dll 
java_tut 
jspbook 
resin.ini 
test.jsp 

가 뜹니다.
그러고 test.jsp를 실행하면
됩니다.
test.jsp의 내용은 이러합니다.~

<%@ page language=javascript %>
<%
out.println(\"JSP\");
%>

그런데 db연결하는거 테스트해주는 
first_jdbc.jsp 를 실행하면 에러납니다.

500 Servlet Exception
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error
establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:172)
at _first_0jdbc__jsp._jspService(/first_jdbc.jsp:5)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:497)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:312)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:244)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
at java.lang.Thread.run(Thread.java:479)


--------------------------------------------------------------------------------
Resin 2.1.6 (built Fri Nov 8 08:18:18 PST 2002) 


이것은 jdbc가 제대로 안돌아간다는 뜻의 에러같습니다.
first_jdbc.jsp의 내용은 아래와 같습니다.

<%@ page import=\"java.sql.*\" contentType=\"text/html; charset=EUC-KR\" %>
<%
   Class.forName(\"com.microsoft.jdbc.sqlserver.SQLServerDriver\");
   Connection Conn = 
      DriverManager.getConnection(\"jdbc:microsoft:sqlserver://xxx.xx.xxx.xxx:1433\",\"jdbcuser\",
  \"비밀번호\");
   Statement Stmt = Conn.createStatement();
   ResultSet Rs = Stmt.executeQuery(\"SELECT count(*) AS mCount FROM etc2.dbo.adress;\");
   Rs.next();
   out.println(\"회원수 : \" + Rs.getString(\"mCount\") + \" 명\");
   Stmt.close();
   Conn.close();
 %>
 

보안상 아이피랑 비번은 안넣었습니다. 글고  mssql 쓰면 공통 포트가 1433이래네요.

http://localhost/test.jsp하면 에러납니다.
안뜹니다. 제가 위에서 이것저것 한것중에 하나가
8080포트 안쓰고 뜨게 하는 거였는데 안뜨네요.
그렇다고 conf 파일을 80으로 바꾸면 iis에서 쓰는게 80포트라 충돌 날거구..


문제는 두가지입니다.
jdbc 코넥 제대로 안되는거 하구
8080포트 지우고도 제대로 돌아가게 하는거입니다.

제가 이렇게 길게 설명을 하는 이유는
제가 모르고 범한 오류가 있을지도 몰라서입니다.
한번 죽 훑어보시고 제가 미흡한 부분을 콕콕 찝어주세요~!

긴 글 읽어주셔서 감사드리고 답변 꼭 해주세요~!!

지금 몇일째 삽질중이에요--;