Eclipse + WebLogic 추가 설정 사항들...

Posted at 2011.08.23 11:40 | Posted in Server/WebLogic
이클립스 콘솔에서 한글이 깨짐

Eclipse + WebLogic 연동해서 쓰고.....



Workspace 기본 인코딩(encoding)을 UTF-8로 설정하게 되면



서버를 띄운 후 콘솔(Console) 내용 중에 한글이 깨져서 나오게 됩니다.

<2010. 8. 22 ���� 12�� 46�� 49�� KST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 17.0-b16 from Sun Microsystems Inc.>
<2010. 8. 22 ���� 12�� 46�� 54�� KST> <Notice> <Se................

웹로직 로그파일이 UTF-8이 아니라서 그런데 설정을 해줘야합니다.

"......\user_projects\domains\domain1(도메인명)\bin" 폴더에서 setDomainEnv.cmd 파일을 수정합니다.

227 라인 정도 부분에 JAVA_PROPERTIES 환경 변수에 추가해줍니다.

set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%
 -Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8

다시 웹로직을 시작 시키면 한글이 제대로 나옵니다.

서버 시작시 윕에서 적용한 옵션이 나오는 것을 확인할 수 있습니다.

.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http:\\hostname:port\console        *
***************************************************
starting weblogic with Java version:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
Starting WLS with line:
C:\PROGRA~1\Java\JDK16~1.0_2\bin\java -client   -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.policy=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server\lib\weblogic.policy  -Xverify:none  -da -Dplatform.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3 -Dwls.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server -Dweblogic.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server -Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8  -Dweblogic.management.discover=true  -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\oracle\MIDDLE~1\11112~1.X\patch_wls1032\profiles\default\sysext_manifest_classpath;C:\oracle\MIDDLE~1\11112~1.X\patch_jdev1111\profiles\default\sysext_manifest_classpath  weblogic.Server
<2010. 8. 19 오후 4시 19분 03초 KST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 17.0-b17 from Sun Microsystems Inc.>
<2010. 8. 19 오후 4시 19분 04초 KST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.2.0  Tue Oct 20 12:16:15 PDT 2009 1267925 >
<2010. 8. 19 오후 4시 19분 06초 KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<2010. 8. 19 오후 4시 19분 06초 KST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<2010. 8. 19 오후 4시 19분 07초 KST> <Notice> <LoggingService> <BEA-320400> <The log file .....




PermGen space 에러.

잘 사용하다가 "java.lang.OutOfMemoryError" 에러가 나면서 서버가 뻣어 버리니는 경우가 많이 일어납니다...

이클립스가 뻣는게 아니라 웹로직 서버가 뻣는 것입니다.

이유는 여러가지가 있겠지만 어쨋든 메모리가 딸린겁니다... -_-;;

이때는  PerGen 사이즈를 늘려주면 좀 더 오래 버팁니다 ㅠㅠ

해결법 1)

웹로직을 직접 죽입니다. 작업관리자에서 웹로직을 띄우고 있는 java.exe 를 죽이면 됩니다.


해결법 2)

메모리 사이즈를 늘려서 좀 더 오래 버티게 하는 방법이 있습니다.

서버를 띄울때 로그를 잘 보면 처음에 아래와 같은 로그를 볼 수 있습니다.

Starting WLS with line:
C:\PROGRA~1\Java\JDK16~1.0_2\bin\java -client   -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m ....

이 크기를 늘려주면 됩니다.

이클립스와 연결된 도메인 폴더로 이동합니다. (이하 %DOMAIN_HOME%)

%DOMAIN_HOME%\bin\setDomainEnv.cmd 파일을 수정합니다.

187 라인 쯤에 변경할 수 있는 부분이 있습니다.

아래의 값을 변경하면 됩니다. 자신의 OS 비트에 따라 변경하세요~

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m

  1. 잘 봤습니다. 다음 아래 사항 설정 할때 주의하세요

    set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%
    -Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8

    를 그대로 붙여넣게 되면 다음줄로 내려가게 되는데...

    한줄에 다 써주어야 합니다 ^^
  2. 감사합니다. 많은 도움이 되었습니다.
  3. jee
    오홍, 댓글 못보고 엔터치고 입력해서 헤맸어요 ㅎㅎ 잘 정리해주셔서 감사합니다.
  4. 공갈사기
    잘 보고 갑니다. 감사합니다.
  5. 좋은글 출처를 표시하고 블로그에 담아갑니다. ^^
  6. tay
    이 블로그에서 많은 도움 받고 갑니다.
    여러 번 들어왔네요.
    감사합니다.

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

웹로직 ZIP 배포판 설치 (윈도우)

Posted at 2011.07.14 09:33 | Posted in Server/WebLogic
단순히 이클립스 + OEPE + 웹로직을 돌리기 위해서 웹로직을 따로 설치하는게 그래서...

ZIP 버젼으로 간단하게 설치하는 방법을 알아 봅시다.

http://www.oracle.com -> Downloads -> Weblogic Server



다운로드 받은 "wls1035_dev.zip" 파일을 적당한 곳에 받아서 압축을 풉니다.

전 이제부터 "D:\server\wls1035_dev" 폴더에 풀겠습니다.

이제 모든 작업은 프롬프트 창에서 이루어 집니다.

 



일단 경로를 이동합니다.

어디인가> d:

d:\> cd server\wls1035_dev

d:\server\wls1035_dev> _ 


환경변수를 설정합니다.

> set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_26
> set MW_HOME=d:\server\wls1035_dev

> echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26

>echo %MW_HOME%
d:\server\wls1035_dev


설정 프로그램을 실행합니다.

> configure.cmd

"Setting up proper ACLs for d:\server\wls1035_dev ... (operation takes awhile)"

CLASSPATH=C:\PROGRA~1\Java\JDK16~1.0_2\lib\tools.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic_sp.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic.jar;d:\server\WLS103~1\modules\features\weblogic.server.modules_10.3.5.0.jar;d:\server\WLS103~1\wlserver\server\lib\webservices.jar;d:\server\WLS103~1\modules\ORGAPA~1.1/lib/ant-all.jar;d:\server\WLS103~1\modules\NETSFA~1.0_1/lib/ant-contrib.jar;

PATH=;d:\server\WLS103~1\wlserver\server\native\win\32;d:\server\WLS103~1\wlserver\server\bin;d:\server\WLS103~1\modules\ORGAPA~1.1\bin;C:\PROGRA~1\Java\JDK16~1.0_2\jre\bin;C:\PROGRA~1\Java\JDK16~1.0_2\bin;C:\Program Files\Common Files\NetSarang;D:\oracle\11.2.0\client_1;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;d:\server\WLS103~1\wlserver\server\native\win\32\oci920_8

Your environment has been set.
Buildfile: d:\server\WLS103~1\configure.xml

registry:
     [copy] Copying 1 file to d:\server\WLS103~1

detect.os:

product.property:

product.property.unix:

product.property.windows:

all:

BUILD SUCCESSFUL
Total time: 3 seconds

현재 프롬프트(cmd) 창에 웹로직 환경을 적용합니다.

> %MW_HOME%\wlserver\server\bin\setWLSEnv.cmd

CLASSPATH=C:\PROGRA~1\Java\JDK16~1.0_2\lib\tools.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic_sp.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic.jar;d:\server\WLS103~1\modules\features\weblogic.server.modules_10.3.5.0.jar;d:\server\WLS103~1\wlserver\server\lib\webservices.jar;d:\server\WLS103~1\modules\ORGAPA~1.1/lib/ant-all.jar;d:\server\WLS103~1\modules\NETSFA~1.0_1/lib/ant-contrib.jar;C:\PROGRA~1\Java\JDK16~1.0_2\lib\tools.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic_sp.jar;d:\server\WLS103~1\wlserver\server\lib\weblogic.jar;d:\server\WLS103~1\modules\features\weblogic.server.modules_10.3.5.0.jar;d:\server\WLS103~1\wlserver\server\lib\webservices.jar;d:\server\WLS103~1\modules\ORGAPA~1.1/lib/ant-all.jar;d:\server\WLS103~1\modules\NETSFA~1.0_1/lib/ant-contrib.jar;

PATH=;d:\server\WLS103~1\wlserver\server\native\win\32;d:\server\WLS103~1\wlserver\server\bin;d:\server\WLS103~1\modules\ORGAPA~1.1\bin;C:\PROGRA~1\Java\JDK16~1.0_2\jre\bin;C:\PROGRA~1\Java\JDK16~1.0_2\bin;;d:\server\WLS103~1\wlserver\server\native\win\32;d:\server\WLS103~1\wlserver\server\bin;d:\server\WLS103~1\modules\ORGAPA~1.1\bin;C:\PROGRA~1\Java\JDK16~1.0_2\jre\bin;C:\PROGRA~1\Java\JDK16~1.0_2\bin;C:\Program Files\Common Files\NetSarang;D:\oracle\11.2.0\client_1;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;d:\server\WLS103~1\wlserver\server\native\win\32\oci920_8;d:\server\WLS103~1\wlserver\server\native\win\32\oci9
20_8

Your environment has been set.


도메인을 생성합니다.

> %MW_HOME%/wlserver/common/bin/config.cmd


뭐... 거의 Next 연타 수준입니다...


















이클립스와 연동하는 부분은 여기에서 "플러그인 설치"와 "서버 등록" 부분만 보면 되겠습니다.

이 링크에 거의 대부분 들어가 있지만 ZIP 파일 설치 부분을 좀 더 자세히 다뤘습니다.
  1. ㄸㅅ
    이거 윈도우에 로직 설치할수엤는건가요?.?

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

WebLogic EJBGen을 이용해 CMP를 만들 때 Oracle Sequence 를 사용하는 방법입니다.

Eclipse 3.4.2 + Oracle WebLogic Server Support 1.0.0.2 에서 테스트 했습니다.

스키마는 간단하게...

CREATE TABLE INFO (
   SEQ NUMBER PRIMARY KEY,
   DATA VARCHAR(200) NOT NULL
);

CREATE SEQUENCE INFO_SEQ INCREMENT BY 1;


WebLogic 프로젝트 만드는 법은 여기를 참조하시구요~ -_-+

시퀀스를 그려봤는데 당연히 틀렸겠죠? -_-



문제는 SessionBean에서 EntityBean한테 create() 할 때 시퀀스를 적용시켜야 한다는거죵~

InfoBean.java - Entity Bean

package ejb;

import javax.ejb.EntityBean;
import javax.ejb.CreateException;
import weblogic.ejb.GenericEntityBean;
import weblogic.ejbgen.AutomaticKeyGeneration;
import weblogic.ejbgen.Entity;
import weblogic.ejbgen.JndiName;
import weblogic.ejbgen.FileGeneration;
import weblogic.ejbgen.Constants;
import weblogic.ejbgen.CmpField;
import weblogic.ejbgen.LocalMethod;
import weblogic.ejbgen.AutomaticKeyGeneration.AutomaticKeyGenerationType;
import weblogic.ejbgen.CmpField.ColumnType;
import weblogic.ejbgen.Entity.DatabaseType;

@Entity (
  ejbName = "InfoBean",
  dataSourceName = "ejbTest",
  databaseType = DatabaseType.ORACLE,
  tableName = "info",
  primKeyClass = "java.lang.Integer"
)

@JndiName(local = "ejb.Info")

@FileGeneration(
  localClass = Constants.Bool.TRUE, localClassName = "Info",
  localHome = Constants.Bool.TRUE, localHomeName = "InfoHome",
  remoteClass = Constants.Bool.FALSE, remoteHome = Constants.Bool.FALSE,
  valueClass = Constants.Bool.FALSE
)

// Sequence 설정 부분
@AutomaticKeyGeneration(
  type = AutomaticKeyGenerationType.SEQUENCE,
  name = "info_seq",
  cacheSize = "1"
)

abstract public class InfoBean extends GenericEntityBean implements EntityBean
{
  private static final long serialVersionUID = 1L;

  public java.lang.Integer ejbCreate(java.lang.String data) throws CreateException
  {
    // setSeq(seq)
    setData(data);
    
    return null;
  }

  public void ejbPostCreate(java.lang.String data) { }

  @CmpField(column = "seq", primkeyField = Constants.Bool.TRUE, columnType = ColumnType.LONG_STRING)
  @LocalMethod
  public abstract java.lang.Integer getSeq();
  public abstract void setSeq(java.lang.Integer seq);

  @CmpField(column = "data", columnType = ColumnType.LONG_STRING)
  @LocalMethod
  public abstract java.lang.String getData();
  @LocalMethod
  public abstract void setData(java.lang.String data);
}


이렇게 Entity Bean 을 만들고, mysql 이나 mssql 에서 쓰듯이 시퀀스 부분 빼고 데이터를 넣어주면 자동으로 번호가 생성됩니다.

test.jsp - 클라이언트

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="javax.naming.*, javax.rmi.*, ejb.*, java.util.Properties" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

<%
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL, "t3://localhost:7001");

Context ctx = new InitialContext(p);
Object h = ctx.lookup("ejb.InfoManage");
InfoManageHome home = (InfoManageHome)PortableRemoteObject.narrow(h, InfoManageHome.class);
InfoManage im = home.create();

// 테이터1 등록
InfoData info1 = im.insert("테이터1");
out.print(info1.getSeq() + " - " + info1.getData() + "<br>");

//테이터2 등록
InfoData info2 = im.insert("테이터2");
out.print(info2.getSeq() + " - " + info2.getData() + "<br>");
%>

</body>
</html>


InfoManageBean.java - 세션 빈

package ejb;

import javax.ejb.SessionBean;
import javax.naming.Context;
import javax.naming.InitialContext;

import weblogic.ejb.GenericSessionBean;
import weblogic.ejbgen.RemoteMethod;
import weblogic.ejbgen.Session;
import weblogic.ejbgen.JndiName;
import weblogic.ejbgen.FileGeneration;
import weblogic.ejbgen.Constants;

@Session(ejbName = "InfoMenageBean")
@JndiName(remote = "ejb.InfoManage")
@FileGeneration(
  remoteClass = Constants.Bool.TRUE, remoteClassName = "InfoManage",
  remoteHome = Constants.Bool.TRUE, remoteHomeName = "InfoManageHome",
  localClass = Constants.Bool.FALSE,
  localHome = Constants.Bool.FALSE
)

public class InfoManageBean extends GenericSessionBean implements SessionBean
{
  private static final long serialVersionUID = 1L;

  public void ejbCreate() { }

  @RemoteMethod
  public InfoData insert(String data) throws Exception
  {
    Context ctx = new InitialContext();
    InfoHome home = (InfoHome)ctx.lookup("ejb.Info");
    Info info = home.create(data);

    // DTO 클래스로 변환
    return convertData(info);
  }

  // Info -> InfoData
  private InfoData convertData(Info info)
  {
    return new InfoData(info.getSeq(), info.getData());
  }
}


InfoData.java - Data Transfer Object

package ejb;

public class InfoData implements java.io.Serializable

  private Integer seq;
  private String data;
 
  public InfoData(Integer seq, String data) {
    this.seq = seq;
    this.data = data;
  }
 
  public Integer getSeq() {
    return seq;
  }
  public String getData() {
    return data;
  }
  public void setData(String data) {
    this.data = data;
  }
 
  private static final long serialVersionUID = 1L;
}

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

WebLogic 10.3 JDBC 설정(DataSource)

Posted at 2009.04.18 05:48 | Posted in Server/WebLogic

- console 접속


- 왼쪽 트리메뉴에서 도메인이름 → Serviews → JDBC → Data Sources 선택





- 현재 등록되어있는 DataSource 목록이 나옵니다. New 클릭



- 기본 속성 입력
Name : 그냥 표시되는 이름
JDI Name : 중요!! DataSource 를 찾을 때 쓰는 이름입니다.
Database Type : 디비 종류
Database Driver : 드라이버





- 트랜잭션 설정 : 잘 모르겠습니다 -_- Next





- SID, 아이디, 비번, 주소 등등 입력합니다. Next





- 접속 테스트 합니다. Test Configuration 클릭





- Connection test succeeded. 가 나와야 성공. Next





- 타겟 서버를 선택합니다. Finish





- 추가된 것 확인




- 등록 완료



테스트

- 간단하게 테스트하기 위해 Server Runtime 을 Orcle WebLogic Server v10.3으로 선택





- 간단한 테스트 페이지 작성

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="javax.naming.*, javax.sql.*, java.sql.*" %>
<%@ page import="java.util.Properties"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>WebLogic 10.3 JDBC 테스트</title>
</head>
<body>

<%
Context ctx = null;
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try
{
   ctx = new InitialContext();
   ds = (DataSource)ctx.lookup("AntopTest");

   conn = ds.getConnection();
   stmt = conn.createStatement();

   rs = stmt.executeQuery("select * from tab");

   while(rs.next()) {
      out.print(rs.getString(1) + " - " + rs.getString(2) + "<br>");
   }
}
catch(Exception e)
{
   out.print("error : " + e.getMessage());
}
finally
{
   try { if(rs != null) rs.close(); } catch (SQLException ignore) { }
   try { if(stmt != null) stmt.close(); } catch (SQLException ignore) { }
   try { if(conn != null) conn.close(); } catch (SQLException ignore) { }

   ds = null;
   try { if(ctx != null) ctx.close(); } catch (NamingException ignore) { }
}
%>

</body>
</html>



- 실행 결과





tag: JDBC, Weblogic
  1. seo
    맙소사 weblogic 10.3 install 구글에서 검색했는데 안탑께 나왓어....-__-;;;;
  2. hjbeauty
    -,.- 흘려가며 눈 뻘개져가며 찾아 헤몄는데 구글 영문탄도 보고요 , 이렇게 속시원하게 만들어 늫으신것을 이제야 찾아서 얼마나 감사한지요. 계속 구독하고 싶어요
    그리고 감사 꾸벅
  3. 복덩이
    기존 8버전대에선 커넥션풀도 잡고 데이터소스도 잡아줬는데
    버전 10으로 가면서 커넥션풀은 안 잡고 데이터소스만 잡으라고 가이드 하던데요..

    그렇게 되면 8버전대에서 쓰던 프로그램을 수정해야 하는 일들이 발생하더군요..

    공통파일...JDBC관련 자바파일에서요..

    다른 분들도 그런 일 있었나요??
    • 2009.08.27 15:07 신고 [Edit/Del]
      음.. 웹로직 8.1sp6 깔고 커넥션풀은 대충 잡고 DataSource JNDI 이름 맞춰서 하고 위에 소스 그대로 테스트 했는데 잘 되었습니다.

      음.. 공통파일이라는게 이럴때(서버환경바꼇을때?) 한번만 바꾸라고 만든거니.. 공통 파일을 바꾸는 것도...
  4. Seeker
    테스트 페이지를 퍼갔으니 저도 뭔가 알려드려야겠죠....;;

    트랜잭션에는 일반적으로 다음의 세가지가 관계되어 있습니다.
    1. 애플리케이션: 트랜잭션 요청 착수
    2. data store(데이터베이스 등):트랜잭션 구동
    3. API(드라이버 등):애플리케이션과 데이터 창고 간의 통신. J2EE 플랫폼에서는 J2EE- compliant 애플리케이션 서버에 의해 API(또는 드라이버)가 제공된다. 이 애플리케이션 프로그램은 애플리케이션 서버를 호출하여 트랙잭션을 수행.

    어찌되었건...non-XA 드라이버를 사용하는 경우 트랜젝션 처리 방법에대해서 WebLogic에서는 세가지 방법을 제시합니다.

    one phase는 말그대로 한번에...검사하지 않고 넘어가는 방식이고
    emulate two phase는 첫번째로, 트랜잭션이 오류 없이 구동 되었는지를 확인하는 검사가 실행한 후, 오류가 없다면 두번째로 넘어가며, 에러가 있다면 트랜잭션은 초기화합니다.
    LLR은 위 방법보다는 더 안정적이라고 하는데(실행된 것에대하여 다시 읽어옵니다.) 뭐...

    어쨋든...트랜젝션 안쓰면 빼는것을 추천합니다.(가끔 안빼서 Error나는 경우가 있더군요)
  5. 복덩이
    웹로직 10 설치하고서



    혹,,이런 에러 본적 있나요..
    DataSource로 커넥션 맺고 insert하는 과정에서


    setAutoCommit(false);
    ...
    execute();
    ...
    con.commit(); => 에러 발생!!!



    ejb_jar.xml에서는 Required(Container)로 설정..



    무엇이 문제일까요? 웹로직 8에서는 commit있어도 에러 없었음.



    DataSource를 사용하면서 문제가 되는거 같기도 하구요..

    이런식으로 코딩해놓은 소스가 너무 많아서 다 고치기도 어렵구요..(테스트하기 어려움)



    참..에러메시지는

    java.sql.SQLException: Cannot call Connection.commit in distributed transaction.
    Transaction Manager will commit the resource manager when the distributed tran
    saction is committed.
    at weblogic.jdbc.wrapper.JTSConnection.commit(JTSConnection.java:611)
    ......

    이런식입니다.

    윗분이 트랜잭션 관련 설명해주셨는데요..
    저희쪽 데이터소스 설정 시 OnePhaseCommit으로 설정되어 있네요..(이게 디폴트 같기도 하구요)
  6. tacchinardi
    웹로직과 OracleDB 연동 부분을 검색하다가 들르게 되었습니다.
    DB DataSource를 등록하는 과정에 마지막 타켓 서버 지정해주는 부분을 빼먹는 바람에
    몇 시간 삽질했는데...-_-;;;
    덕분에 해결되었습니다.
    이 페이지를 제 싸이 게시판에 링크 걸어두고 싶은데 괜찮으신지 모르겠습니다
  7. 저도 위에분과 같이 타겟서버 지정하는거 때문에 한시간을 허비했군요... 좋은정보입니다!!!

    티스토리가 의외로 깔끔하군요..
  8. 히야!
    정말 굿입니다..
    일주일간 검색을 헛했네요 ㅋㅋㅋ

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Eclipse + WebLogic 10.3

Posted at 2009.03.15 07:51 | Posted in Server/WebLogic

시작전 설정


Eclipse 가 deploy 등등 조작(?)을 하려면 서버 설정을 하나 해줘야 합니다.


- 서버 시작
시작 → 프로그램 → Oracle WebLogic → User Projects → base_domain → Start Admin Server for Weblogic Server Domain


- Administration Console 실행 → 상단에 Preferences 클릭




- 마지막 Automatically Acquire Lock and Activate Changes를 체크해제하고 Save 클릭



- 왼쪽 상단의 Change Center가 수동으로 바뀌었습니다.



- Release Configuration을 클릭하여 Lock & Edit 버튼이 활성화되게 바꿉니다.
이 상태가 되어야 Eclipse가 자동 배포 등이 가능하게 됩니다..




Eclipse에 Runtime Server 추가하기


- Eclipse IDE for Java EE Developers로 시작합니다... File → New → Other... 선택


- Server → Server 선택. Next 클릭





- 처음에는 WebLogic이 없습니다. Download additional server adapters 클릭



- 기다리면 정보를 받아와 목록이 생깁니다. Oracle WebLogic Support 선택. Next 클릭




- 라이선스에 동의. Finish 클릭




- 프로그램을 다운로드 받아 설치한다고 합니다. OK 클릭



- 다운로드 및 설치 중... 설치가 완료되면 자동으로 Eclipse를 재시작합니다.



- JDK 버젼 어쩌고 나오는군요... Yes 클릭



- 다시 File → New → Other... 그리고 Server → Server
서버 목록에 Oracle WebLogic Server v10.3 이 생겼습니다. 선택 후 Next



- WebLogic Server 의 위치를 설정합니다.



- 도메인을 설정합니다.



- 적용시킬 프로젝트를 추가시킵니다. 현재는 프로젝트가 하나도 없군요...



- 아래 Servers 탭에 WebLogic Server 가 추가되었습니다.





간단한 세션 빈 테스트 - Server(WebLogic)
※ 컴퓨터 2대(Tomcat 6.0.18, WegLogic 10.3)로 분산환경에서 테스트 합니다.


File → New → Other... 그리고 General → Faceted Project 선택. Next 클릭




- 프로젝트 이름 설정. Next 클릭



- Facet 를 조합합니다. WebLogic에 맞는 EJB Porject를 생성하기 위해서는 아래와 같이 조합합니다.

오른쪽 Runtimes 탭에서 꼭 Oracle Weblogic Server v10.3을 체크해주세요.
체크하지 않으면 "Failed to retrieve WLS runtime for EJB processing" 에러가 납니다.



- Source Folder를 설정합니다.



- 잘 만들어 졌다네요..(아닌가?)



- Project Explorer를 보게되면 아래와같이 EJB Project가 만들어졌습니다.



- New → Package. 패키지를 하나 만듭니다.



- New → WebLogic Session Bean 선택. 여기서 만드는 파일이 빈(Bean) 클래스 파일이 됩니다.



- 소스 코드를 완성합니다.


기본적으로 세션빈에서 만들어져야 하는 명세는 GenericSessionBean 클래스에 작성되어있고 이걸 상속 받는군요...
public class HelloWorld extends GenericSessionBean implements SessionBean
{



중요한 부분은 @ 가 있는 부분입니다.

@JndiName은 클라이언트에서 lookup하는 JNDI 이름을 설정합니다.
@FileGenerration은 remoteClass, remoteHome, localClass, localHome 클래스 파일을 자동 생성할지 설정합니다.

@Session(ejbName = "HelloWorld")
@JndiName(remote = "ejb.HelloWorldRemoteHome")
@FileGeneration(remoteClass = Constants.Bool.TRUE, remoteHome = Constants.Bool.TRUE,
                          localClass = Constants.Bool.FALSE, localHome = Constants.Bool.FALSE)


remoteClass를 TRUE로 설정시, 사용자가 추가하는 메소드에는 꼭 @RemoteMethod를 적어줘야 원격(Remote) 클래스에 메소드가 추가됩니다.
@RemoteMethod
public String helloWorld() {
     return "Hello World!!";
}


빈(Bean) 클래스 파일만 작성하면 원격(Remote) 클래스, 홈(Home) 클래스, 기타파일(ejb-jar.xml, weblogic-ejb-jar.xml) 등을 알아서 만들어줍니다.

ex)
빈(Bean) 클래스 : HelloWorld.java
원격(Remote) 클래스 : HelloWorldRemote.java ← 자동생성
홈(Home) 클래스 : HelloWorldRemoteHome.java ← 자동생성
배치 디스크립터 파일 : ejb-jar.xml , weblogic-ejb-jar.xml ← 자동생성


- 아래 Servers 탭에서 WebLogic을 선택후 마우스 우클릭 → Add and Remove Projects...
현재 만든 프로젝트를 Configured projects 목록에 추가시킵니다.




- 서버 아래에 HelloWorld 프로젝트가 추가되었습니다.



- Run → Run 선택. Run on Server 선택 후 OK



- 서버 확인 후 Finish



- 서버가 실행되면서 자동으로 배치(재배치) 합니다.


※ 프로젝트의 State가 둘다 "Republish", "Synchronized"가 아니면 배치가 안된거니 확인하세요.(명세에 안맞거나 기탕 등등 에러)

※ 여기서 이런 오류가 나온다면, 위에 "시작전설정" 이 제대로 안되서 나오는 오류 입니다.



- Administration Console 실행 후 Deployments에서 배치가 되어있으면 성공!
※ 이클립스 프로젝트가 삭제되거나 서버의 프로젝트 목록에 없으면 배치가 안되니 다 완성후에는 수동으로 배치 시켜줘야겠죠?;;





클라이언트 설정하기


- 서버에서 작성된 EJB jar 파일이 클라이언트에서 필요합니다.
프로젝트 최상위 루트에서 마우스 우클릭 → Export → EJB JAR File 선택 후 적당한 위치에 저장합니다.
이 파일(HelloWorld.jar)은 클라이언트 프로젝트의 WebContent\WEB-INF\lib 에 저장합니다.




- 클라이언트가 서버와 다른 컴퓨터. 다른 JVM, 다른 컨테이너 등등 다를 경우 서버(WebLogic)의 라이브러리가 필요합니다

wlfullclient.jar 파일은 [톰켓설치폴더]\lib 에 저장합니다.

※ 링크가 바뀌는 바람이 링크 수정 하면서 여기에다 wlfullclient.jar 파일 생성법 올립니다. 이래서 링크는 싫어... ㅠ_ㅠ
Creating a wlfullclient.jar File for a Client Application
Use the following steps to create a wlfullclient.jar file for a client application:

1.Change directories to the server/lib directory.
cd WL_HOME/server/lib

2.Use the following command to create wlfullclient.jar in the server/lib directory:

java -jar ../../../modules/com.bea.core.jarbuilder_X.X.X.X.jar

where X.X.X.X is the version number of the jarbuilder module in the WL_HOME/server/lib directory. For example:

java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar

3.You can now copy and bundle the wlfullclient.jar with client applications.

4.Add the wlfullclient.jar to the client application’s classpath.




간단한 세션 빈 테스트 - Client(Tomcat)
※ 컴퓨터 2대(Tomcat 6.0.18, WegLogic 10.3)로 분산환경에서 테스트 합니다.


- File → New → Dynamic Web Project 선택. 프로젝트 이름, Target Runtime 설정





- 소스 코드를 완성합니다.


소스의 내용은 JNDI로 룩업해서 Hello World!!! 찍는거...

wlfullclient.jar과 HelloWorld.jar 파일이 아래와 같이 라이브러이에 등록되어있어야 합니다.
wlfullclient.jar : [톰켓설치폴더]\lib
HelloWorld.jar : [프로젝트]\WebContent\WEB-INF\lib



- Run → Run. Server 확인 후 Finish



- 잘 실행되었습니다!! ㅠ_ㅠv

  1. 김의섭
    와~~
    알토란 정보로 꽉 찼네요...
    잘보구 갑니다.
    즐겨 찾기에 등록해 놓았구요.
    자주 들어와서 많이 배울 생각입니다.
    ^^
  2. 델리스
    잘 정리해 놓은 자료를 쏙 빼먹고가서 죄송한 마음이 드네요..
    덕분에 정리가 잘 되었습니다. 감사합니다~
  3. 고생하셨네요~ 밤세우신건 아니시죠~?ㅎㅎ
    너무 좋은 정보 감사히 쓰겠습니다.
    이제부턴 저도 삽질한번해봐야겠네요^^
    즐겨찾기 해놨어요~ 자주놀러올께요~
  4. kun
    좋은 정보 감사드립니다.
    덕분에 많은 도움 되었습니다.^^
  5. TestMD
    좋은정보 감사합니다. 출처 노출하여 스크랩 하겠습니다.
  6. Jibro
    전 왜 서버목록에서 검색할때 Oracle WebLogic Support 이게 안뜨고
    Oracle WebLogic Server Tool 이 뜰까요
    그 이후로 설정이 달라져서 어떻게 하질 못하고 이틀째 이러고 있네요..ㅠㅠ

    웹로직 사용하는건 왜이리 어려운건가요ㅣ..ㅠ
    • 2011.05.20 15:35 신고 [Edit/Del]
      지금 이 포스트는 이클립스에서 웹로직을 지원하는 초창기(10.3)의 버젼입니다.

      현재는 버젼이 많이 올라가서 약간 다를 것입니다. (10.3.5)

      현재 이클립스 3.6(helios)에서는 Marketpalce(Help - Eclipse Marketplace)에도 등록되어 있어서 더 쉽게 설치할 수 있습니다.

      설치법:
      http://download.oracle.com/docs/cd/E15315_07/help/oracle.eclipse.tools.common.doc/html/install.html

      쉽게 나옴:
      http://download.oracle.com/docs/cd/E15315_06/help/oracle.eclipse.tools.common.doc/html/install.html

      사용법:
      http://download.oracle.com/docs/cd/E15315_07/help/oracle.eclipse.tools.weblogic.doc/html/conFeatureOverview.html
    • Jibro
      2011.05.20 17:02 [Edit/Del]
      그렇구나 헐 빠른 답변 고마워요

      오늘 안에 해결할수있겠어요 이제 드디어 맘편히 퇴근할수있겠구나..ㅠㅠ
      감사합니다 ㅎㅎ
  7. Jibro
    헬리오스 3.6 으로 사용법 링크 걸어주신거 보고 대강하다가 또 막혔는데..
    어쨌든 겸사겸사 설치는 다했어도 그럼 설정은 어떻게 하죠~?
    위에 포스트 대로 나오지를 않아서 .. 설정도 못하고 확인도 못하고
    전혀쓰질 못하네요 ...
    차라리 제 생각인데 포스트에 있는 버전으로 이클립스 버전 맞춰서 설치 하면안될까요?
    이클립스 제께 3.6이니까 포스트가 3.2 이면 그렇게 만들면 포스트와 같이 되지 않을까 싶어서요
    오늘 안에 이러다 끝이 날런지..ㅠㅠ
  8. 임형구
    정말 꼭 필요한 정보였어요. 웹라직 많이 사용해보지 않아서 잘 몰랐는데, 이렇게 좋은 방법이 있는줄 몰랐습니다. 정말로 감사드립니다.
  9. 비밀댓글입니다
  10. 공갈사기
    혼자 했으면, 여러번 삽질하시면서 짜증 났을텐데 덕분에 수고를 많이 줄입니다. 감사합니다.
  11. agapeuni
    좋은글 출처를 표시하고 블로그에 담아갑니다. ^^

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Domain 생성 및 테스트

Posted at 2009.03.14 21:04 | Posted in Server/WebLogic

도메인이란? 관리적인 개념으로서 단일 Administration Server로 관리하는 Server, Machine 및 Cluster의 그룹(인터넷 도메인 x)


- 시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Tools → Configuration Wizard


- Create a new WebLogic domain 선택




- Generate a domain configured automatically to support to following products 선택



- User name과 User password 설정



- 서버 모드(개발, 운용) 및 JDK 설정



- 다른 옵션들 추가 설정



- 도메인 이름, 디렉토리 설정



- 도메인 생성 완료





※ html, jsp, Servlet 테스트



이 파일에는 간단한 index.html sum.jsp HelloServlet.java 파일이 들어있습니다.

Test.war 파일을 배치하여 테스트 해봅시다.


- Test.war 파일을 적당한 위치로 옮깁니다.



- 서버를 실행합니다.
시작 → 프로그램 → Oracle WebLogic → User Projects → base_domain → Start Admin Server for Weblogic Server Domain



Administration Console을 실행합니다.



- 왼쪽의 Domain Structure 트리에서 Deployments를 선택합니다.



- Install 클릭



- 배치할 파일이나 디렉토리를 설정합니다.
여기서 war, jar 파일이나 디렉토리가 선택이 되지 않으면 잘못 작성되었기 때문입니다.



- Next 클릭



- Finish 클릭.(더 자세한 설정을 하려면 Next로 더 설정할 수 있습니다)



- war 파일이 정상적으로 배치(deploy) 되었습니다.



- html 테스트



- jsp 테스트



- Servlet 테스트

  1. 멋쟁이~! 전 웹로직 진행을 위해 다음장으로 ㅎㅎ
    아! 그리고 도메인 잡을때요 맨처음 웹로직 설치하면서 설정했던 java path로 안잡고
    다른 jdk1.5등으로 잡아주면 jdk버젼충돌나서 제대로 설치안되더라고요~
    그때 잡아준 jdk버젼으로 잡아줘야하는거 같더라고요..
    흠...그럼....너무 종속적이지..않을까 싶네요...jdk1.5에서 jdk1.6를 손쉽게 넘어다닐순
    없는걸까요~? 그냥 참고입니다 ^^

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Oracle WebLogic Server 10.3 설치

Posted at 2009.03.14 16:05 | Posted in Server/WebLogic

영어 잘 하시는분은.. http://edocs.bea.com/wls/docs103/getstart/overview.html 보시길... ㅠ_ㅠ

- 설치 환경



java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)



설치파일을 다운로드 받습니다.



- 다운로드 받은 설치파일을 실행합시다. (Net Installer - net_server103_win32.exe)



- Welcome~ Next...



- BEA Home Directory 설정후 Next



- Net Installer 에서만 나오는 설정입니다. 설치하면서 받을 파일 저장 위치를 지정합니다.



- 기본설치, 사용자설치 선택. 아무것도 모르겠다 하면 Complete 하시면 되겠죠... 저는 Custom로 합니다.



- 설치할 프로그램을 설정합니다.
Workshop은 Eclipse를 개량하여 최적화시킨 것입니다. 저는 Eclise를 따로 쓰기 때문에 패스.



- 사용할 JDK 를 선택합니다.
WebLogic 기본으로 1.6.0_05를 설치하는데 저는 1.6.0_12를 사용하기 위해서 따로 JDK를 추가 했습니다.



- JDK 1.6.0_12 쓸거냐고 물어보는군요... 가볍게 Yes



- 설치파일을 다운로드 받습니다. Net Installer 에서만 볼 수 있습니다.



- 다운로드 받은 설치파일을 검사합니다. Net Installer 에서만 볼 수 있습니다.



- WebLogic이 설치될 디렉토리를 설정합니다.



- Node Manager Service를 설치할지 설정.



- 시작메뉴를 전체 다 보여줄지 선택.. 윈도우 관련된 것이죠.. -_-/



- 설치될 파일들을 마지막으로 확인합니다.



- 설치 시작



- 설치가 완료되었습니다.



- 간단하게 설치가 잘 되었는지 확인하기 위해서....
시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Examples → Start Examples Server 선택



http://localhost:7001/ 잘 되면 설치 완료!



- 서버 끄기 : 시작 → 프로그램 → Oracle WebLogic → WebLogic Server 10gR3 → Examples → Stop Examples Server 선택
※ 서버 끌때 그냥 cmd 창 닫아버리지 말고, 꼭 stop하는 명령(?)을 이용합니다.


- 설치하다가 이런거 나오면 윈도우 보안 관련된 것이니 '차단 해체' 선택해주세요.

tag: EJB, WAS, Weblogic
  1. 안녕하세요.
    설치과정 그림을 이용하여 포스팅을 하여서 댓글로 출처 남깁니다.
    와서 한번 확인해주세요. 만약 문제된다면 삭제하겠습니다.
    감사합니다.

    세아향 : http://thebetterday.tistory.com/entry/BloggerBestPictures
  2. 오홍~ 깔끔하신 정리덕에 너무 쉽게 설치했네요~ 일단 감사~^^
    토요일날 어디 안 놀러 가시고 공부하시는군요 ㅎㅎ
  3. 내용 퍼갑니다. 문제가 있으시다 하시면 바로 삭제하도록 하겠습니다.
    감사합니다.
    • 2010.06.01 09:18 신고 [Edit/Del]
      퍼갔는데 문제 생기면 책임 못집니다! >..<
      여기서 문제란? 저작권 그런게 아닌 내용이 틀렸는데 퍼가서 난중에 원망 마세여! ㅎㅎㅎ
  4. 나연아빠
    좋은 정보 감사합니다.
    퍼갑니다. 그럼 수고하세요.^^
  5. agapeuni
    좋은글 출처를 표시하고 블로그에 담아갑니다. ^^

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기