1.Servlet/JDBC연동에서 한글문제
———————————
>Oracle JDBC를 설치하구요, 예제 EmpServlet를 수행하면
>한글이 깨져서 나오는군요.
>
>하라는데로 HDriverManager를 사용하였는데 Compile에러가 나오는데요..
>어찌된건지..
>
>그리구 오라클 Setting이 USA7ASCII로 되어있으면 상관없지 않나요
Servlet에서 DB와 연결하여 작업시 한글 문제는 상당히 골치 아픈 문제
입니다.
이는 Java에서는 내부적으로 Unicode를 사용하고 DB와 OS에서는 다른
encoding을 사용하기 때문에 일어나는 문제입니다.
먼저 어떤 OS에서 Servlet을 구동하고 있는지 궁금하군요.
Windows라는 OS에서 MS949라는 encoding을 기본적으로 사용하고 있고
Java 소스 파일을 컴파일할때 이를 사용합니다.
Servlet에서 한글 문제를 해결하기 위해서는 모든 encoding방법을 하나로
통일하면 됩니다.
Java 소스를 MS949 encoding형태로 컴파일 하여 사용하고 DB를 US7ASCII
형태로 사용한다면 DB에 자료를 넣을때는 자료를 ISO-8859-1 형태로 encoding
하고 DB에서 자료를 가져올 때는 KSC5601또는 MS949형태로 encoding하면
됩니다.
encoding하기 위해서는 String object를 byte[]로 만들고 이를 다시 String으로
만들면서 encoding rule을 적용하도록 하면 됩니다.
2.한글 읽어오기에 문제가 있는데여…
—————————————-
>JDK1.3을 사용하다가 JDK1.4로 업글 중인데여..
>웹에서 받아들인 한글 값들(request.getParameter()한 값들을)을
>지금까지 JDK1.3에서는
>URLDecoder.decode(String str) 로 해서 변환해 이용했거든여..
>그러면 컴퓨터의 환경 설정에 따라서 잘 변환이 되었습니다.
>그런데 JDK1.4 부터는 URLDecoder.decode(String str, String enc)로 되어 있구여
>URLDecoder.decode(String str)은 deprecate 되어서 사용이 안되거든여..
>그래서 URLDecoder.decode(String str, String enc)를 이용하려고 하는데
>enc 값을 “UTF-8”, “euc-kr”, “ISO-8859-1″로 해서 해봤는데
>웹에서 받아들인 한글 값을 제대로 decoding 하지 못하네여..
>enc 값을 어떻게 설정해야 하나여?
>
>JDK1.3에서 한글 값을 읽어오기는 아래와 같이 했습니다.
>String hangul = URLDecoder.decode(request.getParameter(“hangul”));
>
>JDK1.4에서는 어떻게 해야 하는 거져?
decode를 하지마시구요..
전역으루
<%! String makeKOR(String str)throws java.io.UnsupportedEncodingException
{
String kor=””;
if(str==null)
kor=null;
else
kor=new String(str.getBytes(“ISO-8859-1″),”EUC-KR”);
return kor;
}
%>
한 다음에 불러올때
makeKOR(request.getParameter(“hangul”)); 로 사용하세요…
3.한글화일 다운로드 문제..
—————————-
import java.io.*;
public class JDU{
public static String get8859_1(String ko){
if (ko == null) {
return null;
}
try {
return new String(ko.getBytes(“EUC_KR”),”8859_1″);
} catch(Exception e) {
return ko;
}
}
public static String getEUC_KR(String en){
if (en == null) {
return null;
}
try {
return new String (en.getBytes(“8859_1”), “EUC_KR”);
} catch(Exception e) {
return en;
}
}
위 소스를 패키화 시켜서…
한글화 하고자 하는 부분에서
String filename = req.getParameter(“filename”);
filename = JDU.getEUC_KR((filename));
static 메소드 이기 때문에 쓰실때 객체 생성없이 클래스.메소드()
이런식으로 쓰시면 됩니다..
>
>String filename = req.getParameter(“filename”);//다운 받을때 저장되는 이름
>filename = URLDecoder.decode(filename);//한글 땜시 넣어줌
>
>===========================================
>
>그런데 컴파일을 해보니 에러표시는 아닌데 아래와 같은 메세지가 나옵니다.
>
>Note: Down_Bean.java uses or overrides a deprecated API.
>Note: Recompile with -deprecation for details.
>
>그래도 일단 실행을 시켜봤습니다.. 역시나 안되더군요..
>
>그래서 api를 찾아서 봤더니 메소드가 두개 있었습니다..
>인수를 하나 넣은거랑 두개 넣는거랑 두개 있길래 하나 넣어서 위와 같은 메세지가 출력이 되었으므로 인수를 임의 대로 아래와 같이 두개 넣어봤더니 메세지도 안뜨고 에러 표시도 안났습니다..
>
>filename = URLEncoder.encode(filename,filename);
>
>그래서 실행을 해봤더니 이번에는 아에 페이지가 아무것도 안뜨면서 하얀 상태로 있습니다..
>
>그래서 제 나름대로 아래와 같이 소스 수정을 해봐서 실행을 해 봤더니 역시 똑같은 하얀페이지만 나옵니다..
>
>filename = URLEncoder.encode(“”,filename);
>
>도 해보고
>
>filename = URLEncoder.encode(filename,””);
>
>도 해봤습니다..
4. 황당한 한글 문제로…
—————————-
6.0에서 0.5 %의 확률로 한글이 깨진다는 것입니다..
이런 황당할때가..
혹시 해결책 아시는분 있습니까???
5.한글 문제….
——————–
처음에 윈도우 NT 서버에서 테스트 할때는 한글이 안깨졌습니다
IE 버전에 전혀 영향을 받지 않고 그러나 리눅스(와우7.3)에서는 한글이 깨지더군요..
테스트 해본 결과 5.0에서는 안깨지고 6.0에서만 깨지더군요..
소스 약간 고쳐서 5.0과 6.0일때의 정보를 가지고 와서 각각 다른 소스로 한글 변환을 했습니다
첫날은 되더니만.. 둘째날은 또 안돼고..
셋째날은 또 되더니만 네째날 부터는 낮에는 되고 아침과 밤에는 한글이 안돼는
지경에 빠졌습니다
6.jsp:include page 에서 한글이 깨짐
—————————————-
jsp:include page include 당하는(?) 파일의 한글이 깨짐니다.
근데.. 이것을 java.net.URLEncode 해서 할수 없는게.. session 에 들어 있는 String[] 의 한글이 깨지거든요.. 난감합니다..
물로 System.out.print로 찍으면.. 잘나오고요…
page도 euc-kr ,ksc5601도 해보고.. String.getBytes(“8859_1″),”KSC5601” 이것도 해봤는데.. 안돼더라고요.. 에라 모르겠다 하는마음에.. decode한다음에 encode도 해봤는데.. 역시나.. 안나옵니다..
방법좀 알려주세요..
resin 1.25 입니다.
j2sdk 1.4.0_03입니다.
java.net.URLEncode(str)
java.net.URLEncode(str,”ksc5601″)
결과)
%B0%AD%BD%C2%C8%C6+++++++++ (ㅠ(ㅠ(ㅠ.ㅠ)ㅠ)ㅠ)
7.애플릿에서 한글이 안되네요.
———————————
저 또한 실시간 챠트를 애플릿으로 구현 했는데..
윈 2000 이외에 윈도우에선 한글이 깨지더라구요..
어케 해결 했냐면..
자바 플러그인 설치시 언어를 International로 했습니다..
그 담부터는 잘 나오죠..
근데 한가지 질문이 있거든요..
유료 애플릿 챠트 컴포넌트를 사용하면..
3차원 챠트등도 가능한건지? && 소스도 볼수 있는지?
볼수 있다면.. 소스좀 올려주실 수 있는지 부탁드립니다..^^
좋은 하루 보내세요..^^
첨엔 한글이 ㅁㅁㅁ 이렇게 네모로 나오다가
한글 인코딩을 넣어주니 이번엔 ??? 이렇게 나오는 거 있죠.
웃기게도 다른 애플릿은 정상적으로 보인다는 거죠..
유독 한가지(컴포넌트 – rchart라는 유료 애플릿 차트 컴포넌트)만 한글이 문제가 되거든요.
font.properties라는 파일을 font.properties.ko의 내용으로 바꾸고 저장한 다음 톰캣을 다시 실행한 다음 에도 안되네요..
—————–한글 인코딩 클래스—————
public static String ConvertUniToKsc(String str)
{
String rtn = null;
try
{
if (str != null) {
rtn = new String(str.getBytes(“8859_1”), “KSC5601”);
}
}
catch (java.io.UnsupportedEncodingException e)
{
}
return rtn;
}
8.mysql과 jsp 연동에서 한글문제요…
———————————————–
resultSet 객체에 담아서 오겠죠.
이 인스턴스를 rs 라 하면
new String(rs.getString(1).getBytes(“8859_1″),”KSC5601”)
이렇게 받아보실래요?
>mysql과 jsp연동 프로젝트를 하고있는데여;;;
>
>mysql 에서 insert한 데이터를 웹에서 불러오면 깨져서 나옵니다.
>
>테스트를 한 결과…..
>
>웹에서 인코딩해서 mysql에 insert/select한것은 한글로 잘 반영이 되는데요
>
>mysql자체에서 인서트한걸 웹에서 불러오면 깨진다는거까진 알았습니다.
>
9.폼값을 넘기면 받는 페이지에서는 한글이 깨지는데~
——————————————————-
한글이 깨지는 문제는 보통 db에저장하고 꺼내서 화면에 뿌려질때 생기는 일이 많습니다만(db의 한글 인코딩과 다를때) 님의 경우에는 보내는 페이지에 문제가 있을것으로 생각 됩니다. 보통 <form>을 통한 value값의 전송은 get 또는 post방식으로 한글에 전혀 지장을 주지 않지만 직접 전송방식 예로,
받는 페이지를 receive.jsp라 했을경우
보내는 페이지에서 <a href=”receive.jsp?name=홍길동”>
이와 같은 식으로 전송했을경우는 한들의 인코딩 양식에 문제가 있어 인코딩을 변환 해주어야 정상적으로 한글이 깨지지 않고 보여지게 됩니다.
음..우선은 보내는 페이지의 코딩에 <form>태그를 사용하지않고 위와 같은 식으로 전송하는코드가 있는지 살펴보시기 바랍니다.
>한글 문제인데여~
>입력값을 넘기면 받는 페이지에서 다른 한글은 깨지지가 않는데 Parameter로 넘어온 값만 깨지는 겁니다.
>해결 방안이 없나요?
>
>고수님들의 많은 조언 부탁 드리겠습니다.
>
>받는 페이지 소스는…연습코드라…
><%@ page contentType=”text/html;charset=euc-kr” %>
><html>
><body>
> JSP를 이용한 Form 처리<BR>
> <li>이름 :
> <%
> String name = request.getParameter(“name”);
> if(name != null && name.length() !=0){
> out.println(name);
> }else{
> out.println(“이름이 없네요~”);
> }
> %>
> <li>주소 :
> <%
> String addr = request.getParameter(“addr”).trim();
> if(addr != null && addr.length() !=0){
> out.println(addr);
> }else{
> out.println(“집이 없어요?”);
> }
> %>
></body>
10.다운로드시 첨 한글이 깨짐…ㅜㅜ
—————————————
저같은 경우는 엑셀로 저장하는거였거든요…
weblogic을 웹서버로 사용하였었구요…
파라미터 설정이 뭐가 바뀌었는지는 기억이 안나지만
그런데 처음에는 님처럼
response.setContentType(“application/x-msdownload”);
new String(filename.getBytes(“euc-kr”),”8859_1″);
이렇게 해도 되었구요
나중에 보니까
다시 안되더라구요…
그래서 아래와 같이 타입을 바꿔주니까 되더군요…
<%@ page contentType=”text/vnd.ms-excel”;%>
그 이후로는 이렇게 사용하고 있네요…
>new String(filename.getBytes(“euc-kr”),”8859_1″);
>요 부분이 잘못된거 아네요..?
>반대로 적어주시던가..
>(“8859_1”), “ksc5601″이렇게요..(원래 이거 아닌가요..?) ^^
>그래두 이렇게 해서두 깨지는 경우가 있던데.. ㅠ.ㅠ
>
>이런경우에는 어케 해야돼요..? ㅠ.ㅠ 정말 난감..
>그래서 제가 이렇게저렇게 하다 나온결론은..
>new String(filename.getBytes(“ksc5601″),”ksc5601”);
>이렇게 하니깐.. 신기하게 안깨지데요.. 이게 맞는건가..?
>암튼 한글은 안깨지니 전 걍.. 이렇게 놓구 쓰네요..
>><%@ page contentType=”application;” %><%@ page import=”java.util.*,java.io.*,java.sql.*,java.text.*”%><%@ include file=”/korean/pub/file_dir.jsp” %><%
>> String filename = java.net.URLDecoder.decode(request.getParameter(“file”));
>> String filename2 = new String(filename.getBytes(“euc-kr”),”8859_1″);
>> File file = new File(dir_seminer+filename); // 절대경로입니다.
>> byte b[] = new byte[(int)file.length()];
>> response.setHeader(“Content-Disposition”, “attachment;filename=” + filename2 + “;”);
>> if (file.isFile())
>> {
>> BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));
>> BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
>> int read = 0;
>> while ((read = fin.read(b)) != -1){
>> outs.write(b,0,read);
>> }
>> outs.close();
>> fin.close();
>> }
>>%>
>>
11.[질문]jsp와 오라클에서의 한글처리
—————————————
쿼리문 자체를 찍어보세요.
맞게 한글로 들어가는지.
그리고 나서 데이터베이스에 직접접속을해서
select 해 보세요.
정말로 잘 되는지.
그러구 난다음에 데이터를 가지고 와보세요
과연 어디에 문제가 있는지 찾아야 답이 나오겠지요
각각의 원인에 따라서 처방법도 틀려진답니다.
>name = new String(request.getParameter(“name”).getBytes(“8859_1″),”euc-kr”);
>
>이렇게 넘긴 값을 오라클에 저장을했는데요
>
>오라클에서 값을 가져올때..계속 ???? 로 나오네요
>
>java.net.URLEncoder.encode(address_2);
>
>이렇게 해서 출력을 해보기도 했는데 여전히 ???
>
>로 나와요
>
>어떻게 가지고와야 한글이 그대로 나오죠??
오라클에서 값을 select해올때 ???로 나오는것은 과다 인코딩 문제입니다.
그러니 값을 넣을때 인코딩을 하지말고 넣어보시기 바랍니다.
그리구 테스트해보시면 좋을듯 싶네요.. 제경험입니다.
12.리눅스에서 한글 이름으로 된 파일 ㅠ.ㅠ
————————————————-
upload 할때 사용자가 upload 한 파일과 시스템에서 만든 파일 이름을
디비에 저장 합니다.
그럼 한글 깨질 염려는 없구여. 다운 받을때도 사용자 이름을 넣어
주면 큰 무리 없이 다운 받을수 있습니다.
물론 file 객체를 사용해서 쓸려면 시스템에서 만든 이름을 쓰면 되겠지여
답변이 되었나여 !!! 도움이 되었으면 합니다.
수고 하세요
>리눅스에서 한글 파일을 전혀 인식하지 못하네요.
>
>o/s 상의 문제라는 사람도 있고…
>
>File file=new File(“한글파일.txt”);
>
>이렇게 했을때 file에 정확히 File 객체가 인식되도록 하는 방법이 없을까요?
>
>파일 삭제, 다운로드가 안되는 등 문제가 상당히 심각하네요.
13.sqlserver 2000 insert시 한글 유실? 문제
————————————————-
DB에 데이터를 넣을때는 아래의 메소드를 이용해서 넣어주시고여..
new String(str.getBytes(“KSC5601″),”8859_1”)
반대로 꺼내 올때는
new String(str.getBytes(“8859_1″),”KSC5601”)를 통해서 꺼내와 보세여..
저도 예전에 SQLServer에 한글이 제대로 입출력이 되지 않아서 썻던 방식입니다..
도움이 되셨길..
>SQL2000 에 메세지 입력시 한글이 유실됩니다.-.-;;
>
>코드는 아래와 같습니다.
>메세지에 ‘DB 넣기’ 이렇게 할 경우 DB에는 ‘DB’ 이렇게만 들어가고요..
>메세지에 ‘한글 DB’ 이렇게 입력하면 실제적으로 ‘\’ 이 문자가 들어가네요-_-;;;
>왜그럴까요?…. 답변좀 부탁 드립니다….
>
>// DB Insert
>public int dbInsert(String messageid, String from_number, String to_number, String messages, String ins_time){
>String sql ;
>System.out.println(“in insert function”);
>System.out.println(messages);
>
>try {
>conn = getConnection();
>pstmt = conn.prepareStatement(“insert into smslist ( messageid, from_number, to_number, messages, ins_time, result) values(?,?,?,?,?,?)”);
>pstmt.setString(1, messageid);
>pstmt.setString(2, from_number);
>pstmt.setString(3, to_number);
>pstmt.setString(4, messages);
>pstmt.setString(5, ins_time);
>pstmt.setString(6,”0000″);
>
>pstmt.executeUpdate();
>
>
>} catch (Exception e) {
>System.out.println(e);
>e.printStackTrace();
>return 0;
>} finally{
>closeAll();
>}
>return 1;
>}
>
14.JSP에서 My SQL로 한글 자료를 입력할 때..
—————————————————
get 방식을 post로 바꾸어서 입력을 하시는 것이 좋습니다.
만약에 post 방식으로 한글을 넘긴다면
DB에 데이터를 넣을때는 아래의 메소드를 이용해서 넣어주시고여..
new String(str.getBytes(“KSC5601″),”8859_1”)
반대로 꺼내 올때는
new String(str.getBytes(“8859_1″),”KSC5601”)를 통해서 꺼내와 보세여..
>jsp에서 mysql로 한글 자료를 입력할 때 한글코드가 맞지 않아서 그런지 한글이 제대로 입력되지 않습니다. 이상한 글자가….
>어떻게 해야 하나요?
15.xml에서 추출한 한글값이 깨집니다.
——————————————-
<?xml version=”1.0″ encoding=”euc-kr”?>
삽입해서 문제 해결
>xml에서 추출한 한글값이 깨집니다.
>깨진 한글을 복원시킬려면 어떻게 해야하는지요.
16.WebLogic은 왜 기본적으로 JSP를 사용치 않도록 했을 까요…
————————————————————
아래 부분 처럼 주석 처리되어 있는 부분을 풀어야 합니다.
또 한글지원을 위해 추가적인 Parameter를 넣어야 합니다.
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# WEBLOGIC JSP PROPERTIES
# ————————————————
# Sets up automatic page compilation for JSP. Adjust init args for
# directory locations and uncomment to use.
weblogic.httpd.register.*.jsp=\
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=1,\
compileCommand=e:/jdk1.1.7b/bin/javac.exe,\
workingDir=/weblogic/myserver/classfiles,\
encoding=euc-kr,\
verbose=true
17.JSP와 Servlet에서 한글 깨지는 문제
——————————————–
Weblogic 4.5판을 쓰면서 JSP를 사용하는데
> JSP상에서 써준 한글이 모두 깨져서 나오는데…
>
> 지금은 Win98인 제 PC에 SQL Server7.0과 Weblogic을 설치해놓고
> Test하고 있는데, 잘 안되네요.
> 어디선가 국가별 설정을 바꾸라고 되어 있는것을 본듯하여
> 영어(미국)으로 바꾸어 주고 해보니 JSP는 정상적으로
> 한글을 뿌려주는데 Servlet에서는 한글을 정상적으로 처리해주지
> 못하는군요.
> 그리고 아래와 같은 String변환을 안해야 한글이 제대로
> 나오더군요.
>
> String uni2ksc(String str) throws UnsupportedEncodingException {
> if(str== null) return null;
> return new String(str.getBytes(“8859_1”), “KSC5601”);
> }
>
> 그런데 서블릿은 String변환을 해야 한글이 제대로 나오는데
> 국가별 설정이 영어로 되어 있으면 안되고 한글로 되어 있어야
> 나옵니다.
>
> Win98이라서 그런건지? 아니면 문제가 있는건지 알고 싶네요.
>
Servlet/JSP의 한글에 관련한 문제는 여러가지 상황에 따라 다릅니다.
서블렛엔진이나 어플리케이션 서버에 따라 한글 인코딩(KSC5601 혹은 EUC-KR)을
지원하지 않을 수 있습니다.
그러나 WebLogic 4.5.x 버전일 경우는 그리 문제되는 경우는 아닙니다.
다음 네가지 상황을 마추어 주셔야 합니다.
1. 서블렛엔진의 System Properties인 file.encoding 이 KSC5601 이어야 합니다.
테스트용 서블렛을 하나 만드시고, 아래의 부분으로 확인을 해 보세요.
String encoding = System.getProperty(“file.encoding”);
file.encoding 값은 Windows 일 경우 국가별설정이 “한국”일 경우 기본적으로
KSC5601 로 마추어 지며, 영문(미국) 일 경우 8859_1 으로 마추어지게 됩니다.
그러나 국가별 설정이 무엇이든간에 WebLogic의 start script에서
java -Dfile.encoding=KSC5601 ….. 와 같이 마추시면 되고,
UNIX환경일 경우, export LANG=ko (혹은 export LANG=ko_KR) 등으로 환경변수를
셋팅하시면, JVM은 그에 따른 encoding값을 설정합니다. (locale -a 로 시스템에서
지원하는 Locale 를 확인할 수 있습니다.)
환경변수와 CharacterSet과의 관계는 아래 문서를 참조하세요
http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=QandA&c=r_p&n=955981139
2. 서블렛 엔진이 일단 file.encoding=KSC5601 로 마추면, Servlet의
res.setContentType(“text/html;charset=euc-kr”); 로 하시면 서블렛에서
한글을 사용하기 위해 특별한 변환을 하실 필요는 없습니다.
(한글을 사용하기위해 소스의 코드변환을 넣는다는 건 어떤 경우든 말이 안되
잖습니까? )
3. WebLogic에서 JSP 내에 한글을 사용하기 위해서는 먼저 weblogic.properties에
encoding=euc-kr 부분을 첨가해 주세요.
이 부분의 역할은 *.jsp 라는 파일에 static한 한글문자열을 파싱할 때 사용하는
JSP Parser의 encoding을 결정해 주는 것입니다.
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# WEBLOGIC JSP PROPERTIES
# ————————————————
# Sets up automatic page compilation for JSP. Adjust init args for
# directory locations and uncomment to use.
weblogic.httpd.register.*.jsp=\
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=1,\
compileCommand=e:/jdk1.1.7b/bin/javac.exe,\
workingDir=/weblogic/myserver/classfiles,\
encoding=euc-kr,\
verbose=true
만약 DB가 Oracle이라면, Connection pool 설정을 하실 때 다음과 같이 해줍니다.
(이 또한 weblogic 매뉴얼에 있습니다.)
weblogic.jdbc.connectionPool.testPool=\
driver=weblogic.jdbc.oci.Driver,\
url=jdbc:weblogic:oracle,\
initialCapacity=10,\
maxCapacity=50,\
capacityIncrement=1,\
testTable=dual,\
refreshMinutes=1,\
testConnsOnRelease = true,\
testConnsOnReserve = true,\
props=user=scott;password=tyger;server=ORCL;codeset=EUC-KR
이 때, ORCL은 웹로직이 있는 컴의 tns 설정을 말합니다.
//tnsnames.ora
ORCL.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA = (SID = ORCL) (server=dedicated) )
)
NOTE: “codeset=EUC-KR”은 임수경님이 알려 주셨습니다. 상세한 내용은 아래의 글을
참조하세요. “웹로직에서 oci드라이브 설정 방법”
http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=weblogic&c=r_p&n=965021366
4. JSP 소스에는 항상 다음과 같이 Content-Type이 마추어져 있어야 합니다.
<%@ page contentType=”text/html;charset=euc-kr” %>
PS: 기억이 틀릴 수 있습니다만, WebLogic 4.5.0 에는 JSP에서의 한글이 지원되지
않았으나, 4.5.1 부터 3번의 기능 즉, encoding=euc-kr 값을 셋팅할 수 있게 된
것으로 기억합니다.
PS: 다른 서블렛엔진이나, 어플리케이션 서버도 마찬가지지만, 위의 1,2,3,4 번의
방식으로 했음에도 불구하고, 일부 구간에서 한글이 깨어진다면, 그건 그 제품이
아직 한글을 지원하지 않는다는 것을 의미합니다.
이때야 비로소 한글변환코드를 프로그램내에 삽입하셔야 하는 것이지요.
그러나 일부 개발자들 사이에서는 무턱대고 소스에서 한글변환을 시도하시는 경향이
있습니다. 바람직하지 않습니다.
어쩔 수 없이 한글변환을 위한 코드를 넣어야 한다면, 해당 Utility성 클래스를 만들고
향후 서블렛엔진이 한글을 지원하게 될 경우, 쉽게 해당 Utility클래스의 부분만
고치면 모든 소스에서 반영되도록 개발하시는 것이 바람직할 것입니다.
18.WebLogic + Sybase DB 한글문제
————————————-
> > 현재 웹로직 4.5에서 사이베이스를 쓰고 있는데요,
> > 웹로직 한글 세팅은 EUC-KR 로 되어있구요,
> > 서블릿에서도 코딩상에 res.setContentType(“text/html;charset=euc-kr”);
> > 이부분을 넣어 주었습니다.
> > 그런데도 한글이 깨져서 나오는군요.
> >
> > 서비스넷 게시판에있는 글을 보니까, 한글세팅을 KSC5601로 해주어야 한다고하는데요,
> >
> > 1) EUC-KR 과 KSC5601 이 틀린겁니까?
>
> 아니요, 동일합니다. 어느것을 사용하든, 같습니다. 잘 기억은 나지 않습니다만,
> 표준에 대한 논란이 있어 두가지가 모두 통용되는 듯 합니다.
>
> >
> > 2) 만약에 세팅을 제대로 해주었는데도(euc-kr 이든 ksc5601 이든) 한글이깨져서
> > 나온다면 사이베이스 제품자체에서 한글을 지원해주지 않는겁니까?
> > 답변부탁할께요..
>
> 먼저 어느 부분에 대한 한글문제인지 명확하게 테스트를 하세요.
> 1) 브라우져 –> Servlet( req.getParameter() )
> 2) Servlet –> JSP Object 전달시
> 3) JSP 에서 *.jsp 에 static 하게 적은 한글
> 4) JSP 에서 request.getParameter() 를 통해 받은 문자열을 HTML Tag에 뿌렸을 때,
> 5) Servlet이든 JSP 이든 JDBC 를 이용하여 Sybase DB에서 query 해온 문자열
>
> WebLogic 4.5 에선 아래의 문서에 기록된 것만 참조하시면 1) – 4) 번까진
> 아무런 문제가 없습니다.
>
> http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=weblogic&c=r_p&n=957179071
>
>
> 단, 5)번, 즉, Sybase DB에 접속하실 때, WebLogic jdbcKona JDBC Driver를 이용한
> ConnectionPool 설정은 아래처럼 김상현님이 알려주셨습니다.
>
> http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=weblogic&c=r_p&n=956727536
>
> 근데, 만약 이렇게 했을 때, DB Query된 한글이 제대로 처리되지 않았다면,
> 아래의 글이 좀 도움이 될 지 모르겠습니다.
>
>
> 재작년 이었던 것으로 기억하는데, 그냥 Sybase jConnecter 라는 JDBC Driver를
> 이용하여 DriverManager.getConnection() 시 Properties 에 userid, passowrd 뿐만
> 아니라 ?????=euc-kr 이란 추가적인 Properties 를 주어야만, JDBC에서 한글처리가
> 가능했었습니다. 그 정확한 파라메터명은 기억이 나질 않네요.
> 이 곳에는 찾아봐도 없고, 전 직장 제 PC에 소스가 있는데, 접근할 길이 없네요.
> (아마, charset=euc-kr 이던가???)
>
Class c = Class.forName(“com.sybase.jdbc.SybDriver”);
DriverManager.registerDriver ((Driver)c.newInstance());
(위의 두 줄은 DriverManager.registerDriver ( new com.sybase.jdbc.SybDriver() );
와 동일합니다.)
java.util.Properties prop = new java.util.Properties();
prop.put(“user”, “java”);
prop.put(“password”, “java01”);
prop.put(“CHARSET”, “eucksc”);
DriverManager.getConnection(
“jdbc:sybase:Tds:165.244.227.196:5000/lgeds”, prop );
> 한글을 원할히 사용하시려면 prop.put(“CHARSET”, “eucksc”); 이 부분이 반드시
> 있어야 하구요, 한글변환을 위해 특별히 작업할 것은 없습니다.
>
>
네 맞아요… 제 기억을 되살려 주셔서 오히려 제가 감사드립니다.
헌데….. 물론, Sybase JDBC 드라이버는 Oracle JDBC 드라이버와는 달리
그 자체적으로 Connection Pooling 기능을 갖고 있는 것으로 기억합니다.
하지만, WebLogic을 사용하면서, 그냥 Sybase JDBC Driver를 사용하는 것은
WebLogic의 Connection Pooling기능을 사용하지 않겠다는 뜻이 되네요…
위에서 김상현님이 알려준 WebLogic에서 sybase DB pool 을 연결하는 방식을
이용해 보시고, 한글이 안된다면, CHARSET=eucksc 부분을 추가해 보세요…
설령 Sybase JDBC Driver가 그 자체적으로 Connection Pooling을 제공하더라고
WebLogic의 Connection Pool에 등록하셔야, WebLogic의 Transaction을 제대로
활용할 수 있을 겁니다.
예전에 행자부에서 다음과 같은 세팅을 사용하여 웹로직에서
사이베이스 데이터베이스 풀 을 사용하였습니다.
(웹로직 4.0.3 이었음)
###### tengah-provided sybase jdbc driver ########## —–> fail !!
#weblogic.jdbc.connectionPool.ejbPool=\
# url=jdbc:weblogic:sybase,\
# driver=weblogic.jdbc.dblib.Driver,\
# initialCapacity=1,\
# maxCapacity=10,\
# capacityIncrement=1,\
# props=user=sa;password=;server=165.244.227.196:5000/lgeds;weblogic.codeset=eucksc
###### sybase-provided type 4 driver ################ —-> Korean O.K.
weblogic.jdbc.connectionPool.ejbPool=\
url=jdbc:sybase:Tds:165.244.227.233:4100/lgeds,\
driver=com.sybase.jdbc.SybDriver,\
initialCapacity=1,\
maxCapacity=10,\
capacityIncrement=1,\
props=user=sa;password=;CHARSET=eucksc
19.weblogic에서 자바bean과 jsp테스트 도중에 ..
—————————————————
>
> 자바프로페셔널의 예제를 가지고 테스트 할려구 합니다.
> 아래 AlphabetCode.java를 컴파일 하면 에러가 안나구요.
>
> package com.wrox.jspexamples;
>
> import java.awt.Color;
> import java.util.*;
>
> public class AlphabetCode{
>
> HashMap map;
> char c=0;
> Integer colorNumber;
> static int FIRST_LETTER =0x41;
> static int ALPHABET_LENGTH = 26;
> float s = 0.9f;
> float b = 0.9f;
>
> public AlphabetCode(){
>
> this.map = new HashMap(ALPHABET_LENGTH);
> for( int i =0 ; i < ALPHABET_LENGTH;i++){
>
> this.c = (char)(FIRST_LETTER + 1);
> float h = (float)i/ALPHABET_LENGTH;
> this.map.put(new Character(c),Color.getHSBColor(h,s,b));
> }
> }
>
> public void setCharacter(String nextChar)
> {
>
> this.c = nextChar.charAt(0);
> }
>
> public String getCharacter()
> {
> return (new Character(this.c).toString());
> }
>
> public String getColor()
> {
>
> Color rgb = (Color)map.get(new Character(this.c));
> StringBuffer htmlColor = new StringBuffer(colorNumber.toHexString(rgb.getRGB()
> & 0x00ffffff));
>
> // toHexString()은 앞의 0들은 저장하지 않는다.
> // 그러므로 이들을 나중에 다시 추가해 주어야 한다.
> // 만약 일어버리지 않았다면…
>
> if (htmlColor.length() !=6)
> {
> htmlColor.insert(0,”\”#00″);
> }else
> htmlColor.insert(0,”\””);
> htmlColor.append(“\””);
>
> return htmlColor.toString();
> }
> }
>
> ColorDemo.jsp파일은 다음과 같습니다.
>
> <HTML>
> <HEAD>
> <TITLE>Color Demo 1 </TITLE>
> </HEAD>
> <BODY>
> <%@ page language=”java” %>
> <%! char c = 0; %>
> <jsp:useBean id=”letterColor” scope=”application”
> class=”com.wrox.jspexamples.AlphabetCode” />
>
> <%
> for (int i=0; i<26 ; i++)
> {
> for (int j=0;j <26 ; j++)
> {
> c= (char)(0x41 +(26-1+j)%26);
> Character thisChar = new Character(c);
> letterColor.setCharacter(thisChar.toString());
> %>
>
> <font color=<%= letterColor.getColor() %> >
> <%= letterColor.getCharacter() %>
> </font>
>
> <%
> }
> %>
>
> </BODY>
> </HTML>
>
>
> 이걸 weblogic의 root아래다 놓구요
> 웹브라우져로
> http://localhost/ColorDemo.jsp 하구 요청하면 다음과 같은 에러가 발생합니다.
>
>
> Parsing of JSP File ‘C:\weblogic\myserver\public_html\ColorDemo.jsp’ failed:
> ——————————————————————————–
> C:\weblogic\myserver\public_html\ColorDemo.jsp(8): Could not create a bean of
> type: com.wrox.jspexamples.AlphabetCode: java.lang.ClassNotFoundException: com
> .wrox.jspexamples.AlphabetCode
> probably occurred due to an error in C:\weblogic\myserver\public_html\ColorDemo
> .jsp line 8:
> <jsp:useBean id=”letterColor” scope=”application” class=”com.wrox.jspexamples.A
> lphabetCode” />
> ——————————————————————————–
> Wed Jul 05 14:37:08 JST 2000
>
> 무언가 설정이 잘못된것 같은 느낌이 드는데 뭔지는 모르겠군요.
> 저의 개발환경
> win98/weblogic4.51/jdk1.3
>
> 질문
>
> 1. 위와 같은 에러는 무었때문인지 좀 갈켜주세요.
>
> 2. 아직 웹로직에 대해 갈팡질팡하는데
> autoexec.bat에서 잡아주는 CLASSPATH와 WEBLOGICCLASSPATH는 무슨 차이가 있나요!
> 스블릿 소스컴파일 할 때 에러는 안뜨는데 웹로직을 통해서에서 볼려면(대부분
> 서블릿에서) 브라우져에서
> 나타나는 에러는 소스자체에 이상이 있는지 아님 웹로직설정에 이상이 있는지 잘 분간
> 이 안가거든요.
> 참고로 제 autoexec.bat은 다음과 같습니다.
>
> set CLASSPATH=%CLASSPATH%;C:\jdk1.3\lib
> set CLASSPATH=%CLASSPATH%;C:\jdk1.3\lib\tools.jar
> set CLASSPATH=%CLASSPATH%;C:\jdk1.3\classes
> set CLASSPATH=%CLASSPATH%;C:\jdk1.3\lib\jsdk.jar
> set CLASSPATH=%CLASSPATH%;C:\jdk1.3\jdbc\classes12_01.zip
>
> set CLASSPATH=%CLASSPATH%;C:\servlets
>
> set CLASSPATH=%CLASSPATH%;C:\weblogic\classes
> set CLASSPATH=%CLASSPATH%;C:\weblogic\lib\weblogicaux.jar
> set CLASSPATH=%CLASSPATH%;C:\weblogic\lib\weblogic451sp9.jar
> set ClASSPATH=%CLASSPATH%;C:\weblogic\lib\weblogic451sp9boot.jar
> set CLASSPATH=%CLASSPATH%;C:\weblogic\classes\boot
> set CLASSPATH=%CLASSPATH%;C:\weblogic\eval\cloudscape\lib\cloudscape.jar
> set CLASSPATH=%CLASSPATH%;C:\weblogic\license
> set CLASSPATH=%CLASSpATH%;C:\weblogic\myserver\serverclasses
>
> set WEBLOGICCLASSPATH=.;weblogic\lib\weblogicaux.jar;c:\weblogic\classes;c:\webl
> ogic\license;c:\weblogic\myserver\serverclasses;C:\weblogic\lib\weblogic451sp9bo
> ot.jar;C:\weblogic\lib\weblogic451sp9.jar
> rem *** Visual Cafe Enterprise Suitesettings ***
> SET CLASSPATH=;%CLASSPATH%
> SET CLASSPATH=.;C:\VisualCafe\JAVA\LIB;C:\VisualCafe\JAVA\LIB\SYMCLASS.ZIP;C:\Vi
> sualCafe\JAVA\LIB\CLASSES.ZIP;C:\VisualCafe\JFC\SWINGALL.JAR;C:\VisualCafe\BIN\C
> OMPONENTS\SFC.JAR;C:\VisualCafe\BIN\COMPONENTS\SYMBEANS.JAR;;%CLASSPATH%
> rem *** End Visual Cafe Enterprise Suitesettings ***
> SET Path=d:\Oracle\Ora81\bin;”C:\PROGRAM FILES\ORACLE\JRE\1.1.7\BIN”;%PATH%;C:\VI
> SUALCAFE\BIN;C:\VISUALCAFE\JAVA\BIN;
Q> http://localhost/ColorDemo.jsp 하구 요청하면 다음과 같은 에러가 발생합니다.
—-> port를 80으로 잡으셨는지요. 유닉스라면 root가 띄워야 합니다.
Q> Parsing of JSP File ‘C:\weblogic\myserver\public_html\ColorDemo.jsp’ failed:
——————————————————————————-
C:\weblogic\myserver\public_html\ColorDemo.jsp(8): Could not create a bean of
type: com.wrox.jspexamples.AlphabetCode: java.lang.ClassNotFoundException: com.
wrox.jspexamples.AlphabetCode
probably occurred due to an error in C:\weblogic\myserver\public_html\ColorDemo
.jsp line 8:
<jsp:useBean id=”letterColor” scope=”application”
class=”com.wrox.jspexamples.AlphabetCode” />
——————————————————————————–
Wed Jul 05 14:37:08 JST 2000
무언가 설정이 잘못된것 같은 느낌이 드는데 뭔지는 모르겠군요.
저의 개발환경
win98/weblogic4.51/jdk1.3
Q> 1. 위와 같은 에러는 무었때문인지 좀 갈켜주세요.
—-> WebLogic4.5.1이상 버젼은 WINDOWS98을 지원하지 않습니다.
서버급 이상만 지원하죠. UNIX, Linux, NT, Windows2000 Server이상
WINDOWS98에서는 구동되는 것부터 시작해서 어떤 문제가 언제어디서 발생할 지
모른다는 거죠. 또한 서비스팩에 대한 지원도 필요합니다. 참고로 JSP에서
한글처리까지 제대로 될려면 서비스팩 5,7,8,9중 하나를 설치하셔야 합니다.
이런 문제가 없이 돌아간다면(돌아가도 무리겠지만) useBean에서 사용한 클래스에
대해서는 CLASSPATH에 포함되어 있어야 합니다.
Q> 2. 아직 웹로직에 대해 갈팡질팡하는데
autoexec.bat에서 잡아주는 CLASSPATH와 WEBLOGICCLASSPATH는 무슨 차이가 있나요!
서블릿 소스컴파일 할 때 에러는 안뜨는데 웹로직을 통해서에서 볼려면(대부분
서블릿서) 브라우져에서 나타나는 에러는 소스자체에 이상이 있는지 아님 웹로직
설정에 이상이 있는지 잘 분간 이 안가거든요.
—-> autoexec.bat에서는 2개만 클래스패스로 잡아줍니다.
(/weblogic/classes;/weblogic/lib/weblogicaux.jar라는 패스죠)
나머지는 startWebLogic.sh(cmd)에서 설정합니다.
CLASSPATH는 JAVACLASSPATH와 WEBLOGICCLASSPATH로 구분되는 데, 기본 설정에서
CLASSPATH는 이 두부분을 모두 포함합니다. JAVACLASSPATH는 자바가 구동되면서
사용할 클래스패스고 WEBLOGICCLASSPATH는 웹로직이 구동되면서 사용할 클래스
패스입니다.
—-> ERROR에 대해서는 어떤 ERROR이냐에 따라 달라지겠죠. 예를들어 401Error이면
서블릿 클래스를 찾지 못하는 것이고 500Error이면 서블릿코드에 문제가 있는
것이고, 그 이외 HTML의 ERROR부분에서 각 Number에 대한 Error원인이 있습니다.
그 부분을 참고하세요.
또한 웹로직에서는 호출시 Error가 있으면 웹로직이 떠 있는 커맨드에서 Error를
추적해 줍니다.
여기를 참고하시면 어떤 문제로 Error가 발생했는 지도 알수 있겠죠.
20.웹로직4.5.1에서 서블릿을 사용시 한글깨짐문제…
————————————————–
startWebLogic.sh(cmd)에서 java ~ weblogic.Server 로 실행하는 부분이 있습니다.
이부분에 넣어주시면 되겠네요.
> 웹로직 5.1대 버젼을 사용했을 땐 한글이 잘 구동이 되었는데
> 4.5.1을 사용하니까 한글이 자꾸깨져서 살펴보았지요.
>
> import java.io.*;
> public class Test
> {
> public static void main(String[] args) throws Exception{
> System.out.println(“file.encoding=” +
> System.getProperty(“file.encoding”));
> File file = new File(“out.txt”);
> PrintWriter w = new PrintWriter(new FileWriter(file));
> w.println(“안녕하세요?”);
> w.println(“반갑습니다.”);
> w.close();
> }
> }
>
> 이렇게 해서 컴파일 해서 실행시켜보니까 결과가 이렇게 나오더라구요!
> file.encoding=MS949
>
> 저는 지금 win98위에 웹로직(4.5.1)을 띄우고 사용하는데
> file.encoding=KSC5601로 나와야 정상적으로 웹로직4.5.1에서 한글
> 사용이(서블릿에서)문제가 없다고 하던데
>
> 저같은 경우는 win98을 사용하므로 제어판 국가별설정에서 한국을 맞추어 놓고
> 위의 소스를 실행해서 결과가
> file.encoding=KSC5601이렇게 나와야 한글이 제대로 보인다고 하던데
>
> 어떻게 하면 서블릿 엔진의 설정이 file.encoding=KSC5601로 바뀌는 것이지
> 궁금합니다.
> http://www.javaservice.net/ 에서 이원영 선생님께서 올린글 중에 서블릿에서
> 한글문제와 관련해서
> “국가별 설정이 무엇이든간에 WebLogic의 start script에서
> java -Dfile.encoding=KSC5601 ….. 와 같이 마추시면 되고,….”하면
> 된다고 하시는데
>
> 그냥 Dos모드에서 하는 것인지 웹로직어디에선가 하는 것인지 잘 안되더군요!
21.웹로직에서 oci드라이브 설정 방법
————————————————–
>
> 웹로직을 사용하고, oci를 사용하여 DBPool을 쓸려고 하는데
>
> DB서버가 다른 컴에 있는 경우에 oci를 어떻게 설정해야 하나요?
>
> 설명이 좀 부족한거 같은데…
>
> 한 컴에 DB와 웹로직이 같이 있으면 바로 oci를 읽어 드리는데,
>
> 같은 컴에 있지 않은 경우에는 어떻게 설정을 해야 하는지 모르겠습니다.
>
> 아시는 분 설명 좀 꼬옥 부탁드립니다…
>
일단 먼저 확인하실 사항은 웹로직이 있는 컴에 DB 클라이언트 모듈이 설치되어 있는지
확인하셔야 합니다. 다시 말해 오라클(oci라고 하셨으니 오라클이겠죠?)의 SQL*Net 모듈만
있어도 됩니다.
그리고, 그 모듈 중 JDBC 드라이버가 필요로 하는 파일은
라이브러리 패스에 지정되어야 합니다. (이 내용은 weblogic 매뉴얼에 있습니다.)
유닉스에서 SHLIB_PATH 또는 LD_LIBRARY_PATH 라고 하는 것 있죠?
(두 개의 차이는 저는 잘 모르겠습니다만, 머신에 따라 또는 shell에 따라 다른 거 같군요.)
거기에 지정되어야 한다는 말입니다.
(windows는?? 아마 시스템 패스에 지정되면 되는 것 같았음.)
어쨌든 그것이 준비되었으면, weblogic.properties 파일에
connection pool 설정을 하실 때 다음과 같이 해줍니다.
(이 또한 weblogic 매뉴얼에 있습니다.)
weblogic.jdbc.connectionPool.testPool=\
driver=weblogic.jdbc.oci.Driver,\
url=jdbc:weblogic:oracle,\
initialCapacity=3,\
maxCapacity=6,\
capacityIncrement=1,\
testTable=dual,\
refreshMinutes=1,\
testConnsOnRelease = true,\
testConnsOnReserve = true,\
props=user=scott;password=tyger;server=ORCL;codeset=EUC-KR
이 때, ORCL은 웹로직이 있는 컴의 tns 설정을 말합니다.
//tnsnames.ora
ORCL.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA = (SID = ORCL) (server=dedicated) )
)
마지막의 codeset=EUC-KR는 한글지원 설정입니다.
참고로, oracle 8 이상이었구요.
이렇게 해도 DB의 한글이 깨지면, DB char 설정을 바꿔주거나 프로그램에서 변환해야 합니다.
(이거 알아내는데, 무지 힘들었습니다.. *=*)
> >
> > 웹로직을 사용하고, oci를 사용하여 DBPool을 쓸려고 하는데
> >
> > DB서버가 다른 컴에 있는 경우에 oci를 어떻게 설정해야 하나요?
> >
> > 설명이 좀 부족한거 같은데…
> >
> > 한 컴에 DB와 웹로직이 같이 있으면 바로 oci를 읽어 드리는데,
> >
> > 같은 컴에 있지 않은 경우에는 어떻게 설정을 해야 하는지 모르겠습니다.
> >
> > 아시는 분 설명 좀 꼬옥 부탁드립니다…
> >
>
> 일단 먼저 확인하실 사항은 웹로직이 있는 컴에 DB 클라이언트 모듈이 설치되어 있는지
> 확인하셔야 합니다. 다시 말해 오라클(oci라고 하셨으니 오라클이겠죠?)의 SQL*Net 모듈만
> 있어도 됩니다.
>
> 그리고, 그 모듈 중 JDBC 드라이버가 필요로 하는 파일은
> 라이브러리 패스에 지정되어야 합니다. (이 내용은 weblogic 매뉴얼에 있습니다.)
> 유닉스에서 SHLIB_PATH 또는 LD_LIBRARY_PATH 라고 하는 것 있죠?
> (두 개의 차이는 저는 잘 모르겠습니다만, 머신에 따라 또는 shell에 따라 다른 거 같군요.)
> 거기에 지정되어야 한다는 말입니다.
> (windows는?? 아마 시스템 패스에 지정되면 되는 것 같았음.)
>
> 어쨌든 그것이 준비되었으면, weblogic.properties 파일에
> connection pool 설정을 하실 때 다음과 같이 해줍니다.
> (이 또한 weblogic 매뉴얼에 있습니다.)
>
> weblogic.jdbc.connectionPool.testPool=\
> driver=weblogic.jdbc.oci.Driver,\
> url=jdbc:weblogic:oracle,\
> initialCapacity=3,\
> maxCapacity=6,\
> capacityIncrement=1,\
> testTable=dual,\
> refreshMinutes=1,\
> testConnsOnRelease = true,\
> testConnsOnReserve = true,\
> props=user=scott;password=tyger;server=ORCL;codeset=EUC-KR
>
> 이 때, ORCL은 웹로직이 있는 컴의 tns 설정을 말합니다.
> //tnsnames.ora
> ORCL.WORLD =
> (DESCRIPTION =
> (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
> (CONNECT_DATA = (SID = ORCL) (server=dedicated) )
> )
>
>
> 마지막의 codeset=EUC-KR는 한글지원 설정입니다.
> 참고로, oracle 8 이상이었구요.
> 이렇게 해도 DB의 한글이 깨지면, DB char 설정을 바꿔주거나 프로그램에서 변환해야 합니다.
> (이거 알아내는데, 무지 힘들었습니다.. *=*)
위의 설명에 덧붙여 말씀 드리겠습니다.
shlib_path는 주로 HPUX계열에서 사용하는 듯 하구요..
ld_lib_path는 그 밖의 다른 unix에서 사용하는 것 같습니다.
결국 unix에서 oci drive를 잡아 줄 경우 weblogic에서 제공하는 OCI dll file과 oracle의
sql*Net사용을 위한 module을
.profile에 등록을 해 주던지….startWebLogic.sh 화일에 등록을 해 주어야 합니다.
만일….oracle 805를 HPUX에서 사용하신다면… 다음 부분을 등록해 주는 것이 겠지요.
weblogic/lib/hpux11/oci805_8:$ORACLE_HOME/lib
—————————- —————
웹로직 module부분 oracle module부분
위의 두가지와 함께…..
한 가지 더…
weblogic/lib/hpux11
——————-
이 부분도 등록해 주어야 합니다.
각 사용별 기계에 따라 디렉토리가 다르겠지만….unix에 weblogic을 설치할 경우
잡아 주어야 하는 부분 입니다.
위의 세가지 내용이 path에 잡혀 있으면 됩니다.
22.IIS연결 방법좀 갈켜주십시오.
—————————————
>
> bea site에 들어가서 아무리 봐도 도통모르겠습니다.
> NT기반에서 weblogic을 돌리는데 말하자면 서버는
> IIS로 사용하고 weblogic은 jsp,servlet 어플리케이션으로
> 사용하려 합니다.
> weblogic server만 띄우고 사용하면 jsp, servlet 다 잘됩니다.
> 어떻게 해야 서버를 IIS로 사용하나요?
> 적선하는 셈치고 좀 잘 가르쳐 주십시오.
> 그냥 bea site가서 알아보라고 그러시지 마시고….
> 감사합니다.
아래의 사이트에 가시면 아주 쉽게 설명되어 있습니다.
http://www.weblogic.com/docs51/admindocs/isapi.html
23.Weblogic 5.1 JSP에서 한글 사용법
———————————————
저는 웹로직 5.1과 오라클 8.1.6을 사용하고 있습니다.
JSP에서 한글로 입력하면 데이터베이스에 한글이 깨져서 들어갑니다.
이런 경우 웹로직 프로퍼티에 설정만 하면 해결할 수 있습니다.
weblogic.properties에 다음과 같이 설정해 놓으시면 됩니다.
############# OCI driver 이용한 POOL ################
weblogic.jdbc.connectionPool.demoPool=\
url=jdbc:weblogic:oracle,\
driver=weblogic.jdbc.oci.Driver,\
loginDelaySecs=1,\
initialCapacity=4,\
maxCapacity=10,\
capacityIncrement=2,\
allowShrinking=true,\
shrinkPeriodMins=15,\
props=user=username;password=password;server=host_name;codeset=KSC5601
weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
–> 여기서 codeset=KSC5601로 설정합니다.
###############—– JSP setting —–##################
weblogic.httpd.register.*.jsp=\
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=60,\
packagePrefix=examples.jsp,\
compileCommand=c:/jdk1.3/bin/javac.exe,\
workingDir=c:/weblogic/myserver/classfiles,\
encoding=KSC5601,\
keepgenerated=true,\
verbose=true
–> 여기서 endcoding=KSC5601로 설정하면 되죠.
그리고 JSP파일에
<%@ page contentType=”text/html; charset=KSC5601″ %>
로 사용하시면 무리없이 사용하실 수 있을겁니다.
24.WebLogic 6.0설치 가이드 및 관련 자료
——————————————
http://www.itplus.co.kr 의 “기술지원”메뉴의 “기술문서”란에 가시면
WebLogic 6.0설치 가이드 및 신규 추가된 기능등을
한글로 요약해서 정리해 놓았습니다.
웹로직 6.0 설치 가이드를 에 따라서 각각에 맞는 OS 에서 설치 한후 입니다.
6.0sp1 설치는 무지 간단합니다.
6.0 에서 달라진 점
1.config.xml 에서 모든 환경설정을 합니다.
첨부한 파일(config.xml)을 참조하세요.
2.pool 생성 및 데이타 소스 설정
첨부한 파일(config.xml)을 참조하세요.
3.EJB 와 EJB 2.0
EJB2.0 을 지원합니다.
자세한 내용은 Bea 홈페이지 참조 [잘머름]
4.EJB 디폴로이는 applications 디렉토리 밑에 올리면 자동 디폴로이
config.xml 에서 디폴로이 디렉토리 설정하면 됩니다. 기본은 applications입니다.
5. 서블릿은 web-inf/classes 밑에 두면 됩니다.
설정
1. 웹로직 기동 스크립트
setenv.cmd(윈도우 용)
startweblogic.cmd(윈도우용)
첨부한 문서 참조
2.커넥션풀 설정(Pool)
<JDBCConnectionPool
CapacityIncrement=”2″ //요청당 늘어날 pool 갯수
DriverName=”oracle.jdbc.driver.OracleDriver” //드라이버 이름 (thin 드라이버)
InitialCapacity=”2″ //디폴트 pool 갯수
LoginDelaySeconds=”1″
MaxCapacity=”10″ //최대pool갯수
Name=”insaPool” //pool이름
Properties=”user=insa_asp;password=insa_asp20;dll=ocijdbc8;protocol=thin”
//패스워드및 아디 user , password, 이름은 소문자로 대문자로하면 에러발생
RefreshMinutes=”5″
ShrinkPeriodMinutes=”5″ //재설정 시간 초기풀갯수로 줄임 (요청이 없을경우)
ShrinkingEnabled=”true”
Targets=”myserver” TestTableName=”dual” //테스트 설정임 없어도됨
URL=”jdbc:oracle:thin:@192.168.1.220:1521:ORA8i”
//오라클 DB URL thin 드라이버입니다. 다른 드라이버일 경우 값이 틀립니다.
/>
3 .데이타소스 설정
<!– pool 사용할 DataSource –>
<JDBCDataSource JNDIName=”mydomain-dataSource-insaPool”
Name=”mydomain-dataSource-insaPool”
PoolName=”insaPool” Targets=”myserver”/>
4. EJB
첨부한 파일의 EJB 디렉토리안의 build.cmd 실행하시면 됩니다.
필히 열어보시구 환경에 맞게 고치세요.
파일설명
build.cmd jar 파일을 만들기위한 배치파일
—-
ejb-jar.xml EJB 설정 XML
weblogic-ejb-jar.xml EJB 설정 XML
EJB HOME 및 Bean , 컨테이너 수 ,pool, 세션빈과 엔티티빈등 설정 하는 파일입니다.
—
dbconnet.java // Bean 에서 사용할 비즈니스 로직의 명시
dbconnetHome.java //EJB create
dbconnetBean.java //비즈니스 로직이 들어감
— ejb-jar.xml //pool 설정을 해줘야합니다. jdbc/insa_asp
<resource-ref>
<res-ref-name>jdbc/insa_asp</res-ref-name> //풀설정 jdbc/ 는 변경하면 안되영.
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
— weblogic-ejb-jar.xml
<reference-descriptor> pool 설정및 데이타소스설정
<resource-description>
<res-ref-name>
jdbc/insa_asp // 풀 설정 해당 풀이름으로 변경
</res-ref-name>
<jndi-name>
mydomain-dataSource-insa_asp //데이타소스 해당데이터 소스 이름으로 변경
</jndi-name>
</resource-description>
— dbconnetBean.java
private Connection getConnection() throws SQLException {
try {
DataSource ds = (javax.sql.DataSource)
jndiContext.lookup(“java:comp/env/jdbc/insa_asp”);
//insa_asp 해당 pool 이름으로 변경..
return ds.getConnection();
} catch(NamingException ne) {
throw new EJBException(ne);
}
}
시작->프로그램 에 있습니다
웹로직 콘솔을 실행하면 모든설정을 Admin Tool에서 볼수있습니다.
5. jsp 연동
@ page
isErrorPage=”true”
import =”
java.util.* ,
javax.ejb.* ,
javax.naming.* ,
java.rmi.* ,
javax.rmi.* ,
java.lang.* ,
java.lang.Math.* ,
java.io.* ,
weblogic.db.jdbc.* ,
utils.* ,
java.text.*
“
%>
<%– *******************************************************
공통 //첨부한 utils jsp를 include 합니다.
******************************************************* –%>
<%@include file=”/inc_file/utils.jsp”%>
<%!
Context ctx =null;
dbconnet.dbconnet.dbconnetHome ejbEXEJB = null;
dbconnet.dbconnet.dbconnet ejbRemote1 = null;
public void jspInit()
{
try{
ctx = getInitialContext();
Object objref = null;
if(ejbEXEJB == null)
objref = ctx.lookup(“dbconnet.dbconnet.dbconnetHome”);
ejbEXEJB = (dbconnet.dbconnet.dbconnetHome)
PortableRemoteObject.narrow(objref,dbconnet.dbconnet.dbconnet.class);
ejbRemote1 = ejbEXEJB.create();
}catch(Exception e)
{
e.printStackTrace();
System.out.println(“beans:”+e);
}
}
%>
EJB 비즈니스 로직 설명
간단하게 쿼리문에 대한 실행 입니다.
//웹로직에서 지원하는 DataSet 싱글및 멀티가능
public DataSet selectQry(String sQry, DataSet ds) throws RemoteException;
DataSet sRval = null;
Record srVal = null;
sRval = ejbRemote1.selectQry(s_squery, sRval); //쿼리실행 빈의 리턴 값을 받는다..
if(sRval.size() > 0 )
{
for( int ii = 0 ; ii < sRval.size(); ii++)
{
srVal = sRval.getRecord(ii);
String s_CODE_MST = srVal.getValue(1).toString();
String CODE_DESC = srVal.getValue(2).toString();
String USE_FLAG = srVal.getValue(3).toString();
out.println(srVal.getValue(1).toString());
out.println(srVal.getValue(2).toString());
out.println(srVal.getValue(3).toString());
}
}
//단순 insert,update,delete 실행
public int insert(String QRY) throws RemoteException;
에러시 0 리턴
//Hashtable 사용한 싱글
public Hashtable getRecord(String qurSrc, int qurCnt)throws RemoteException,Exception;
Hashtable HitemIn = new Hashtable();
ejbRemote1.getRecord(Stirng S_squery , int num);
out.println((String)HitemIn.get(“data1”));
//Vector 사용한 멀티
public Vector getRecords(String qurSrc, int qurCnt)throws RemoteException,Exception;
vDataIn = ejbRemote1.getRecords(s_squery);
for (int ii = 0 ; ii < vDataIn.size(); ii++)
{
Hashtable HitemIn = new Hashtable();
//벡터의 엘리먼트를 해쉬테이블타입으로 캐스팅한다.
HitemIn = (Hashtable)vDataIn.elementAt(ii);
out.println((String)HitemIn.get(“data1”));
out.println((String)HitemIn.get(“data2”));
out.println((String)HitemIn.get(“data3”));
}
//인수중에 필드수는 걍구찬어서 넘깁니다. ㅡ,.-
ResultSet rs = stmt.executeQuery(qryString);
ResultSetMetaData rsm = rs.getMetaData();
int qurCnt = rsm.getColumnCount();
ResultSet 이용한 필드수 구하는 겁니다.
//////////////////////////////////////////////
//바루 풀을 사용해서 접속하는방법입니다.
Class.forName(“weblogic.jdbc.pool.Driver”).newInstance();
conn = DriverManager.getConnection(“jdbc:weblogic:pool:oraclePool”, null);
Stm = conn.createStatement();
ResultSet rs = Stm.executeQuery(sql);
while (rs.next()) {
String name = rs.getString(“NAME”);
out.println(name);
}
//EJB에서 한 바꾸 돌아서 다시 백터나 해시테이블에 넣어서 그걸 리턴받아 서야하기땜시로
미친짓이 아닐까 ?? 미친 짓입니다.
그러나 EJB를 사용하는 하나의 예제입니다.
EJB에 대해서 자료를 더찾아보시길 빕니다.
작은도움이나마 되시길 허허허
weblogic.xml 에 한글설정하는 부분 있습니다.
WEB-INF/ 밑에 던저주면 알아서 끝…
–설치가이드 문서 참조 하시길 —
25.4.51 에서 jsp 한글문제 글대로 조치를 취해도 안되는군요
——————————————————–
>
> 문제는 jsp를 서블릿으로 컴파일 하면서
> jsp에 들어 있는 한글(html)을 유니코드로 바꾸어버리네염…
>
> String encoding = System.getProperty(“file.encoding”);
>
> 하면… MS949라고 나옵니다… KSC5601 가 아니라….
>
> java -Dfile.encoding=KSC5601 라구 startWebLogic.cmd 에서 바꾸어두
>
> 마찬가지입니다 MS949
>
> 환경은 win2000 pro. webLogic4.5.1 sp11 입니다
>
> 4.51이 win2000을 지원하지 않는 것일까요 ?
>
> 그러나 WebLogic 4.5.x 버전일 경우는 그리 문제되는 경우는 아닙니다.
> 다음 네가지 상황을 마추어 주셔야 합니다.
>
> 1. 서블렛엔진의 System Properties인 file.encoding 이 KSC5601 이어야 합니다.
> 테스트용 서블렛을 하나 만드시고, 아래의 부분으로 확인을 해 보세요.
>
> String encoding = System.getProperty(“file.encoding”);
>
> file.encoding 값은 Windows 일 경우 국가별설정이 “한국”일 경우 기본적으로
> KSC5601 로 마추어 지며, 영문(미국) 일 경우 8859_1 으로 마추어지게 됩니다.
> 그러나 국가별 설정이 무엇이든간에 WebLogic의 start script에서
> java -Dfile.encoding=KSC5601 ….. 와 같이 마추시면 되고,
> UNIX환경일 경우, export LANG=ko (혹은 export LANG=ko_KR) 등으로 환경변수를
> 셋팅하시면, JVM은 그에 따른 encoding값을 설정합니다. (locale -a 로 시스템에서
> 지원하는 Locale 를 확인할 수 있습니다.)
> 환경변수와 CharacterSet과의 관계는 아래 문서를 참조하세요
> http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=QandA&c=r_p&n=955981139
>
> 2. 서블렛 엔진이 일단 file.encoding=KSC5601 로 마추면, Servlet의
> res.setContentType(“text/html;charset=euc-kr”); 로 하시면 서블렛에서
> 한글을 사용하기 위해 특별한 변환을 하실 필요는 없습니다.
> (한글을 사용하기위해 소스의 코드변환을 넣는다는 건 어떤 경우든 말이 안되
> 잖습니까? )
>
> 3. WebLogic에서 JSP 내에 한글을 사용하기 위해서는 먼저 weblogic.properties에
> encoding=euc-kr 부분을 첨가해 주세요.
> 이 부분의 역할은 *.jsp 라는 파일에 static한 한글문자열을 파싱할 때 사용하는
> JSP Parser의 encoding을 결정해 주는 것입니다.
>
> # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
> # WEBLOGIC JSP PROPERTIES
> # ————————————————
> # Sets up automatic page compilation for JSP. Adjust init args for
> # directory locations and uncomment to use.
> weblogic.httpd.register.*.jsp=\
> weblogic.servlet.JSPServlet
> weblogic.httpd.initArgs.*.jsp=\
> pageCheckSeconds=1,\
> compileCommand=e:/jdk1.1.7b/bin/javac.exe,\
> workingDir=/weblogic/myserver/classfiles,\
> encoding=euc-kr,\
> verbose=true
>
> 만약 DB가 Oracle이라면, Connection pool 설정을 하실 때 다음과 같이 해줍니다.
> (이 또한 weblogic 매뉴얼에 있습니다.)
>
> weblogic.jdbc.connectionPool.testPool=\
> driver=weblogic.jdbc.oci.Driver,\
> url=jdbc:weblogic:oracle,\
> initialCapacity=10,\
> maxCapacity=50,\
> capacityIncrement=1,\
> testTable=dual,\
> refreshMinutes=1,\
> testConnsOnRelease = true,\
> testConnsOnReserve = true,\
> props=user=scott;password=tyger;server=ORCL;codeset=EUC-KR
>
> 이 때, ORCL은 웹로직이 있는 컴의 tns 설정을 말합니다.
> //tnsnames.ora
> ORCL.WORLD =
> (DESCRIPTION =
> (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
> (CONNECT_DATA = (SID = ORCL) (server=dedicated) )
> )
>
> NOTE: “codeset=EUC-KR”은 임수경님이 알려 주셨습니다. 상세한 내용은 아래의 글을
> 참조하세요. “웹로직에서 oci드라이브 설정 방법”
> http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=weblogic&c=r_p&n=965021366
>
>
> 4. JSP 소스에는 항상 다음과 같이 Content-Type이 마추어져 있어야 합니다.
>
> <%@ page contentType=”text/html;charset=euc-kr” %>
>
>
>
> PS: 기억이 틀릴 수 있습니다만, WebLogic 4.5.0 에는 JSP에서의 한글이 지원되지
> 않았으나, 4.5.1 부터 3번의 기능 즉, encoding=euc-kr 값을 셋팅할 수 있게 된
> 것으로 기억합니다.
>
> PS: 다른 서블렛엔진이나, 어플리케이션 서버도 마찬가지지만, 위의 1,2,3,4 번의
> 방식으로 했음에도 불구하고, 일부 구간에서 한글이 깨어진다면, 그건 그 제품이
> 아직 한글을 지원하지 않는다는 것을 의미합니다.
> 이때야 비로소 한글변환코드를 프로그램내에 삽입하셔야 하는 것이지요.
>
> 그러나 일부 개발자들 사이에서는 무턱대고 소스에서 한글변환을 시도하시는 경향이
> 있습니다. 바람직하지 않습니다.
>
> 어쩔 수 없이 한글변환을 위한 코드를 넣어야 한다면, 해당 Utility성 클래스를 만들고
> 향후 서블렛엔진이 한글을 지원하게 될 경우, 쉽게 해당 Utility클래스의 부분만
> 고치면 모든 소스에서 반영되도록 개발하시는 것이 바람직할 것입니다.
>
>
>
startWeblogic.cmd 파일을 다시 잘 수정해 보시지요…
MS949 가 나온다는 얘기는 -Dfile.encoding=KSC5601 이 먹질 않았다는 얘깁니다.
아래 위, 앞뒤를 잘 봐서 적절한 곳에 넣으세요….
제목 : Re: 4.51 에서 jsp 한글문제 해결했음니다 감솨… ^^;; 근데요 j2ee.jar를 쓰는데 이게 호환이 안되는듯
글쓴이: 워니(nawon2000) 2001/07/03 08:13:37 조회수:700 줄수:189
java -Dfile.encoding=KSC5601 라구 startWebLogic.cmd 에서
위치를 조금 앞으루 했더니 바뀌는군요 –;;
set JAVACLASSPATH=.;.\lib\weblogic451sp11boot.jar;.\classes\boot;.\eval\cloudscape\lib\cloudscape.jar
set JAVACLASSPATH=%JAVACLASSPATH%;d:\Oracle\Ora81\jdbc\lib\classes111.zip;d:\Oracle\Ora81\jdbc\lib\nls_charset11.zip
set JAVACLASSPATH=%JAVACLASSPATH%;%J2EE_HOME%\lib\j2ee.jar
set WEBLOGICCLASSPATH=.\lib\weblogic451sp11.jar;.\license;.\classes;.\myserver\serverclasses;.\lib\weblogicaux.jar
%JDK_HOME%\bin\java -ms64m -mx64m -classpath %JAVACLASSPATH%
-Dfile.encoding=KSC5601 <—- 이걸 젤뒤에 뒀더니… 안바뀌더군요…
-Dweblogic.class.path=%WEBLOGICCLASSPATH%
-Djava.security.manager
-Djava.security.policy==weblogic.policy weblogic.Server
근데요 j2ee.jar를 쓰는데 이게 호환이 안되는듯 합니다 j2sdkee1.2.1 꺼요
아마도 webLogic4.5.1 sp11 이 EJB1.1스펙을 지원을 못하는듯 짐작이 되는데요
전에 webLogic5.1 sp9 에서 돌리던 소스두 안돌아 갑니다
컴파일하면 homeStubIsReplicaAware has been deprecated –;;
Please use homeIsClusterable in the futuer
j2ee.jar를 클래스 패스에서 빼구 빌드해서 디플로이하면
디플로이시 j2ee.jar 가 있으면 런타임시에 AbstractMethodError 이 나는군요
없으면 javax.rmi.PortableRemoteObject 를 찾을수 없데네염…
NoClassDefFoundError
j2sdk 를 EJB 1.0 스펙용을 사용해야 할듯 한데요….
4.51과 호환이 잘되는 건 어떤걸 어디에서 다운받아야 할지…
스펙이 낮으니까 당황스럽네요 –;;
>
> {Re: 4.51 에서 jsp 한글문제 이원영씨 글대로 조치를 취해도 안되는군요}
> {이원영(javaservice), javaservice@hanmail.net}
>
> >
> > {4.51 에서 jsp 한글문제 이원영씨 글대로 조치를 취해도 안되는군요}
> > {워니(nawon2000), nawon2000@hanmail.net}
> >
> >
> > -워니-
> >
> > 아래대로 했는데 안되는 군요.. –;;
> >
> >
> > 문제는 jsp를 서블릿으로 컴파일 하면서
> > jsp에 들어 있는 한글(html)을 유니코드로 바꾸어버리네염…
> >
> > String encoding = System.getProperty(“file.encoding”);
> >
> > 하면… MS949라고 나옵니다… KSC5601 가 아니라….
> >
> > java -Dfile.encoding=KSC5601 라구 startWebLogic.cmd 에서 바꾸어두
> >
> > 마찬가지입니다 MS949
> >
> > 환경은 win2000 pro. webLogic4.5.1 sp11 입니다
> >
> > 4.51이 win2000을 지원하지 않는 것일까요 ?
> >
> > 그러나 WebLogic 4.5.x 버전일 경우는 그리 문제되는 경우는 아닙니다.
> > 다음 네가지 상황을 마추어 주셔야 합니다.
> >
> > 1. 서블렛엔진의 System Properties인 file.encoding 이 KSC5601 이어야 합니다.
> > 테스트용 서블렛을 하나 만드시고, 아래의 부분으로 확인을 해 보세요.
> >
> > String encoding = System.getProperty(“file.encoding”);
> >
> > file.encoding 값은 Windows 일 경우 국가별설정이 “한국”일 경우 기본적으로
> > KSC5601 로 마추어 지며, 영문(미국) 일 경우 8859_1 으로 마추어지게 됩니다.
> > 그러나 국가별 설정이 무엇이든간에 WebLogic의 start script에서
> > java -Dfile.encoding=KSC5601 ….. 와 같이 마추시면 되고,
> > UNIX환경일 경우, export LANG=ko (혹은 export LANG=ko_KR) 등으로 환경변수를
> > 셋팅하시면, JVM은 그에 따른 encoding값을 설정합니다. (locale -a 로 시스템에서
> > 지원하는 Locale 를 확인할 수 있습니다.)
> > 환경변수와 CharacterSet과의 관계는 아래 문서를 참조하세요
> > http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=QandA&c=r_p&n=955981139
> >
> > 2. 서블렛 엔진이 일단 file.encoding=KSC5601 로 마추면, Servlet의
> > res.setContentType(“text/html;charset=euc-kr”); 로 하시면 서블렛에서
> > 한글을 사용하기 위해 특별한 변환을 하실 필요는 없습니다.
> > (한글을 사용하기위해 소스의 코드변환을 넣는다는 건 어떤 경우든 말이 안되
> > 잖습니까? )
> >
> > 3. WebLogic에서 JSP 내에 한글을 사용하기 위해서는 먼저 weblogic.properties에
> > encoding=euc-kr 부분을 첨가해 주세요.
> > 이 부분의 역할은 *.jsp 라는 파일에 static한 한글문자열을 파싱할 때 사용하는
> > JSP Parser의 encoding을 결정해 주는 것입니다.
> >
> > # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
> > # WEBLOGIC JSP PROPERTIES
> > # ————————————————
> > # Sets up automatic page compilation for JSP. Adjust init args for
> > # directory locations and uncomment to use.
> > weblogic.httpd.register.*.jsp=\
> > weblogic.servlet.JSPServlet
> > weblogic.httpd.initArgs.*.jsp=\
> > pageCheckSeconds=1,\
> > compileCommand=e:/jdk1.1.7b/bin/javac.exe,\
> > workingDir=/weblogic/myserver/classfiles,\
> > encoding=euc-kr,\
> > verbose=true
> >
> > 만약 DB가 Oracle이라면, Connection pool 설정을 하실 때 다음과 같이 해줍니다.
> > (이 또한 weblogic 매뉴얼에 있습니다.)
> >
> > weblogic.jdbc.connectionPool.testPool=\
> > driver=weblogic.jdbc.oci.Driver,\
> > url=jdbc:weblogic:oracle,\
> > initialCapacity=10,\
> > maxCapacity=50,\
> > capacityIncrement=1,\
> > testTable=dual,\
> > refreshMinutes=1,\
> > testConnsOnRelease = true,\
> > testConnsOnReserve = true,\
> > props=user=scott;password=tyger;server=ORCL;codeset=EUC-KR
> >
> > 이 때, ORCL은 웹로직이 있는 컴의 tns 설정을 말합니다.
> > //tnsnames.ora
> > ORCL.WORLD =
> > (DESCRIPTION =
> > (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
> > (CONNECT_DATA = (SID = ORCL) (server=dedicated) )
> > )
> >
> > NOTE: “codeset=EUC-KR”은 임수경님이 알려 주셨습니다. 상세한 내용은 아래의 글을
> > 참조하세요. “웹로직에서 oci드라이브 설정 방법”
> > http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=weblogic&c=r_p&n=965021366
> >
> >
> > 4. JSP 소스에는 항상 다음과 같이 Content-Type이 마추어져 있어야 합니다.
> >
> > <%@ page contentType=”text/html;charset=euc-kr” %>
> >
> >
> >
> > PS: 기억이 틀릴 수 있습니다만, WebLogic 4.5.0 에는 JSP에서의 한글이 지원되지
> > 않았으나, 4.5.1 부터 3번의 기능 즉, encoding=euc-kr 값을 셋팅할 수 있게 된
> > 것으로 기억합니다.
> >
> > PS: 다른 서블렛엔진이나, 어플리케이션 서버도 마찬가지지만, 위의 1,2,3,4 번의
> > 방식으로 했음에도 불구하고, 일부 구간에서 한글이 깨어진다면, 그건 그 제품이
> > 아직 한글을 지원하지 않는다는 것을 의미합니다.
> > 이때야 비로소 한글변환코드를 프로그램내에 삽입하셔야 하는 것이지요.
> >
> > 그러나 일부 개발자들 사이에서는 무턱대고 소스에서 한글변환을 시도하시는 경향이
> > 있습니다. 바람직하지 않습니다.
> >
> > 어쩔 수 없이 한글변환을 위한 코드를 넣어야 한다면, 해당 Utility성 클래스를 만들고
> > 향후 서블렛엔진이 한글을 지원하게 될 경우, 쉽게 해당 Utility클래스의 부분만
> > 고치면 모든 소스에서 반영되도록 개발하시는 것이 바람직할 것입니다.
> >
>
>
> startWeblogic.cmd 파일을 다시 잘 수정해 보시지요…
> MS949 가 나온다는 얘기는 -Dfile.encoding=KSC5601 이 먹질 않았다는 얘깁니다.
> 아래 위, 앞뒤를 잘 봐서 적절한 곳에 넣으세요….
sp 11 (EJB1.0(–?)) 에서는 문제가 있군요…
sp 14 (EJB1.1이상인듯) 에서는 문제가 없더군요
>
> {Re: 4.51 에서 jsp 한글문제 해결했음니다 감솨… ^^;; 근데요 j2ee.jar를 쓰는데 이게 호환이 안되는듯}
> {워니(nawon2000), nawon2000@hanmail.net}
>
>
> java -Dfile.encoding=KSC5601 라구 startWebLogic.cmd 에서
>
> 위치를 조금 앞으루 했더니 바뀌는군요 –;;
>
> set JAVACLASSPATH=.;.\lib\weblogic451sp11boot.jar;.\classes\boot;.\eval\cloudscape\lib\cloudscape.jar
> set JAVACLASSPATH=%JAVACLASSPATH%;d:\Oracle\Ora81\jdbc\lib\classes111.zip;d:\Oracle\Ora81\jdbc\lib\nls_charset11.zip
> set JAVACLASSPATH=%JAVACLASSPATH%;%J2EE_HOME%\lib\j2ee.jar
>
> set WEBLOGICCLASSPATH=.\lib\weblogic451sp11.jar;.\license;.\classes;.\myserver\serverclasses;.\lib\weblogicaux.jar
>
> %JDK_HOME%\bin\java -ms64m -mx64m -classpath %JAVACLASSPATH%
> -Dfile.encoding=KSC5601 <—- 이걸 젤뒤에 뒀더니… 안바뀌더군요…
> -Dweblogic.class.path=%WEBLOGICCLASSPATH%
> -Djava.security.manager
> -Djava.security.policy==weblogic.policy weblogic.Server
>
>
> 근데요 j2ee.jar를 쓰는데 이게 호환이 안되는듯 합니다 j2sdkee1.2.1 꺼요
>
> 아마도 webLogic4.5.1 sp11 이 EJB1.1스펙을 지원을 못하는듯 짐작이 되는데요
> 전에 webLogic5.1 sp9 에서 돌리던 소스두 안돌아 갑니다
>
>
> 컴파일하면 homeStubIsReplicaAware has been deprecated –;;
> Please use homeIsClusterable in the futuer
>
> j2ee.jar를 클래스 패스에서 빼구 빌드해서 디플로이하면
>
> 디플로이시 j2ee.jar 가 있으면 런타임시에 AbstractMethodError 이 나는군요
> 없으면 javax.rmi.PortableRemoteObject 를 찾을수 없데네염…
> NoClassDefFoundError
>
> j2sdk 를 EJB 1.0 스펙용을 사용해야 할듯 한데요….
> 4.51과 호환이 잘되는 건 어떤걸 어디에서 다운받아야 할지…
> 스펙이 낮으니까 당황스럽네요 –;;
>
>
> >
> > {Re: 4.51 에서 jsp 한글문제 이원영씨 글대로 조치를 취해도 안되는군요}
> > {이원영(javaservice), javaservice@hanmail.net}
> >
> > >
> > > {4.51 에서 jsp 한글문제 이원영씨 글대로 조치를 취해도 안되는군요}
> > > {워니(nawon2000), nawon2000@hanmail.net}
> > >
> > >
> > > -워니-
> > >
> > > 아래대로 했는데 안되는 군요.. –;;
> > >
> > >
> > > 문제는 jsp를 서블릿으로 컴파일 하면서
> > > jsp에 들어 있는 한글(html)을 유니코드로 바꾸어버리네염…
> > >
> > > String encoding = System.getProperty(“file.encoding”);
> > >
> > > 하면… MS949라고 나옵니다… KSC5601 가 아니라….
> > >
> > > java -Dfile.encoding=KSC5601 라구 startWebLogic.cmd 에서 바꾸어두
> > >
> > > 마찬가지입니다 MS949
> > >
> > > 환경은 win2000 pro. webLogic4.5.1 sp11 입니?!–“<–>