블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
05-08 03:29
 

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

최근에 올라온 글

최근에 달린 댓글


IE 에서 WebDriver 를 이용하여 테스트를 하려고 하였는데 아래와 같은 오류가 발생하였습니다.



Exception in thread "main" org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_20'
Driver info: driver.version: InternetExplorerDriver
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131)
 at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105)
 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:409)
 at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:103)
 at org.openqa.selenium.ie.InternetExplorerDriver.setup(InternetExplorerDriver.java:104)
 at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:61)



검색 후... 해결책을 찾아냈습니다.

DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); 
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);

WebDriver 생성 시에 Capabilities 를 설정하면 해결~




참고자료

http://code.google.com/p/selenium/issues/detail?id=1795


Posted by 자수씨
, |

JBoss 에서 네이밍 서비스를 이용하기 위해서 InitialContext 객체를 그냥 생성하게 되면 아래와 같은 오류를 접하게 됩니다.

javax.naming.CommunicationException: Could not obtain connection to any of these urls: vm://localhost and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server vm:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server vm:1099 [Root exception is java.net.UnknownHostException: vm]]

JBoss 에서는 InitialContext 생성 시에 "java.naming.provider.url" 기본 값이  "vm:localhost:1099" 로 설정이 되어있어, vm 프로토콜을 찾지 못하고 처리를 재대로 못하게 되는 것입니다.


다음과 같은 프로퍼티 설정으로 오류를 해결할 수 있습니다.

기존 소스
InitialContext context = new InitialContext();

변경된 소스
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put(Context.PROVIDER_URL, "jnp://localhost:1099");
InitialContext context = new InitialContext(properties);


~


Posted by 자수씨
, |

요즘에는 회사나 개인적으로 주로 사용하는 WAS 는 JBoss AS 입니다.

최근 관련 작업을 하면서 JBoss AS 를 설치한 쪽 디스크 full 이 자주 일어나 확인해보니 tmp 디렉토리의 vfs-nested.tmp 디렉토리에 수많은 jar 파일들이 원인이였습니다.


JBoss 커뮤니티 사이트를 검색을 하여 발견한 해결책을 이용하여 테스트를 해보았습니다.
(테스트 환경: default deploy 에 두 개의 WAR 파일 배포)

 1. vfs 옵션 미사용

기본 옵션

 

구동 시간: 2m 20s

메모리: 568.612 MB

vfs-nested.tmp 디렉토리: 사용, 기존처럼 무한 증대

 

2. vfs 옵션 조정

-Djboss.vfs.forceNoCopy=true

-Djboss.vfs.forceCopy=false

 

구동 시간: 2m 31s

메모리: 638.764 MB

vfs-nested.tmp 디렉토리: vfs-nested.tmp 사용 안함

 

3. vfs caching 옵션 조정

-Djboss.vfs.cache=org.jboss.virtual.plugins.cache.IterableTimedVFSCache

-Djboss.vfs.cache.TimedPolicyCaching.lifetime=1440

 

구동 시간: 2m 21s

메모리: 521.872 MB

vfs-nested.tmp 디렉토리: 사용, 용량 증가 확인 중


일단, 3번째 방법으로 테스트 서버를 띄워 놓고 용량이 얼마나 증가하는지를 체크해 봐야겠습니다.

>> 3번째 방법으로 하니 파일이 더 많이 생기는 것 같습니다;;; IterableTimedVFSCache 클래스를 검토해봐야 겠습니다.


참고자료


http://community.jboss.org/thread/2148


Posted by 자수씨
, |

잘 알려지지 않았지만 마크업 개발에서는 무쟈게 많이 쓰이는 HTML 태그들을 정리해보았습니다.

HTML <dl> Tag





<dl> 태그는 정의 리스트에 사용됩니다. <dt> 와 <dd> 태그를 하위 엘리먼트로 갖습니다.


<dt> 태그는 정의 리스트의 아이템에 사용됩니다. <dl> 태그 하위로 구성됩니다.


<dd> 태그는 정의 리스트 아이템을 묘사하는데 사용됩니다. <dl> 태그 하위로 구성됩니다. <dd> 태그 안에는 <p>, <img> 등과 같은 태그가 포함될 수 있습니다.


HTML <ol>, <ul> Tag





<ol> 태그는 순차 리스트에 사용됩니다.


<ul> 태그는 비순차 리스트에 사용됩니다.


<li> 태그는 리스트 아이템에 사용됩니다. <li> 태그는 순차(<ol>) 와 비순차(<ul>) 리스트로 사용됩니다.



참고자료

http://www.w3schools.com/tags/default.asp




이정도 익혀두면 태그를 분석하는데는 무리가 없을 듯 합니다.


Posted by 자수씨
, |

Disable Hot Deploy on JBoss 5.1 is easy, just file jbossAs/server/server-profile/deploy/hdscanner-jboss-beans.xml  remove or move to another folder.
 
Hot Deploy is disabled, you can deploy/redeploy/undeploy aplications via twiddle.sh,for example:
 
deploy:
./jbossAs/bin/twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" deploy "file:/hileWhichYouWantDeploy"
 
redeploy:
./jbossAs/bin/twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" redeploy "file:/hileWhichYouWantReDeploy"
 
undeploy:
./jbossAs/bin/twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" undeploy "file:/hileWhichYouWantUnDeploy"
 
To re-enable the Hot Deploy, just copy file hdscanner-jboss-beans.xml to folder jbossAs/server/server-profile/deploy/ and execute
 
./twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" deploy "file:/home/jbossAs5/server/server-profile/deploy/hdscanner-jboss-beans.xml"

출처: http://community.jboss.org/wiki/JBoss51DisableEnableHotDeployHDScanner


위의 내용을 요약하자면 jbossAs/server/server-profile/deploy/hdscanner-jboss-beans.xml 파일을 삭제하거나 다른 디렉토리로 이동을 시키면 HDScanner 가 동작을 안하고 (Hot deploy disable), 다시 복구를 하면 HDScanner 가 동작을 한다는 이야기 입니다.

정리 차원에서 포스팅...

Posted by 자수씨
, |


이클립스에서 간만에 JBoss 를 돌리려고 보니 아래와 같은 오류가 빠방~~


11:23:05,200 INFO  [ServerInfo] Java version: 1.6.0_20,Sun Microsystems Inc.
11:23:05,200 INFO  [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
11:23:05,200 INFO  [ServerInfo] Java VM: Java HotSpot(TM) Client VM 16.3-b01,Sun Microsystems Inc.
11:23:05,200 INFO  [ServerInfo] OS-System: Windows 7 6.1,x86
11:23:05,201 INFO  [ServerInfo] VM arguments: -Dprogram.name=run.bat -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8
11:23:05,230 INFO  [JMXKernel] Legacy JMX core initialized
11:23:06,113 ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Described
java.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.Constructor expected=[java.net.URI] actual=[java.io.File]
 at org.jboss.reflect.plugins.introspection.ReflectionUtils.handleErrors(ReflectionUtils.java:395)
 at org.jboss.reflect.plugins.introspection.ReflectionUtils.newInstance(ReflectionUtils.java:153)
 at org.jboss.reflect.plugins.introspection.ReflectConstructorInfoImpl.newInstance(ReflectConstructorInfoImpl.java:106)
 at org.jboss.joinpoint.plugins.BasicConstructorJoinPoint.dispatch(BasicConstructorJoinPoint.java:80)
 at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.createTarget(AOPConstructorJoinpoint.java:282)
 at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.dispatch(AOPConstructorJoinpoint.java:103)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241)
 at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70)
 at org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:66)
 at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
 at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
 at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
 at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
 at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
 at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
 at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:319)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130)
 at org.jboss.kernel.plugins.deployment.BasicKernelDeployer.deploy(BasicKernelDeployer.java:76)
 at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:91)
 at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:161)
 at org.jboss.bootstrap.microcontainer.ServerImpl.doStart(ServerImpl.java:138)
 at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:450)
 at org.jboss.Main.boot(Main.java:221)
 at org.jboss.Main$1.run(Main.java:556)
 at java.lang.Thread.run(Thread.java:619)


$JBOSS_HOME/server/<serverName>/conf/bootstrap/profile.xml 파일을 수정하여 위의 문제 해결이 가능합니다.
...
    <!-- The attachment store -->
    <bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">
        <constructor><parameter class="java.io.File"><inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter></constructor>
        <property name="mainDeployer"><inject bean="MainDeployer" /></property>
        <property name="serializer"><inject bean="AttachmentsSerializer" /></property>
        <property name="persistenceFactory"><inject bean="PersistenceFactory" /></property>
    </bean>
...

parameter 엘리먼트에 class="java.io.File" 애트리뷰트를 추가합니다.


완료~


참고자료: http://community.jboss.org/thread/2390?tstart=0



Posted by 자수씨
, |


아무생각 없이 JEUS 에 돌던 걸 JBoss 쪽으로 테스트 환경을 구성하다 보니... 아래와 같은 오류를 만났습니다.

org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning; nested exception is java.util.zip.ZipException: error in opening zip file


스프링 소스 내려받아서 오류가 나는 부분 찾으려고 수정한 담에 컴파일 된 소스를 박아봐도 원인은 못 찾겠고...

수차례 삽질과 검색 끝에 찾은 결과는... JEUS 와 JBoss 의 차이점에서 있었습니다.


아래와 같이 web.xml 에 context-param 을 추가하고


서블릿에는 init-param 을 추가합니다. (Spring 2.5 어노테이션을 쓰는 서블릿만...)
 



에잇 내 2박 3일 ㅠ_ㅠ...


Posted by 자수씨
, |

[root@qa bin]# ./run.sh -b 0.0.0.0
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
-bash: run.conf: line 52: syntax error: unexpected end of file


컹;;; JBoss 설치판을 만들면서 run.conf 를 원하는 값으로 변경하려고 하는데 위와 같은 오류가 발생합니다.

열심히 캐 삽질한 결과 원인을 발견했습니다.

UNIX/LINUX 의 쉘 스크립트에서는 개행 시에 Carriage return (OD) + Linefeed (OA) 가 있을 경우 위와 같이 정상적으로 읽어들이지 못하는 문제가 있습니다.

변환하는 프로그램에서 뉴 라인을 CR + LF 조합으로 쓰다보니 문제가 발생하는 것이였습니다.


String line = null;
while ((line = reader.readLine()) != null ) {
    fileContents.append(line).append("\r\n");
}
>>
String line = null;
while ((line = reader.readLine()) != null ) {

    fileContents.append(line).append("\n");
}


프로그램을 수정하는 것으로 문제는 해결될... 것으로 생각됩니다.

JBoss 를 다루다가 발생한 문제라 카테고리는 JBoss 쪽으로 ㅎㅎㅎ

Posted by 자수씨
, |

15:50:25,406 ERROR [AbstractKernelController] Error installing to Start: name=jboss.remoting:protocol=rmi,service=JMXConnectorServer state=Create mode=Manual requiredState=Installed
java.net.MalformedURLException: Bad URL path: _oracle/jndi/rmi://ccu_oracle:1090/jmxconnector
        at javax.management.remote.JMXServiceURL.validate(JMXServiceURL.java:365)
        at javax.management.remote.JMXServiceURL.<init>(JMXServiceURL.java:225)


왠일인지 로컬 테스트용 JBoss 가 안 뜹니다... 오라클만 시키는대로 설치했을 뿐인데...

원인은 컴퓨터 이름에 언더바가 들어가면 어떠한 버그로 인해 처리가 안되는 것 이였습니다. (위에 보시면 컴퓨터 이름이 ccu_oracle 인데, Bad URL Path: _oracle 이라고 나옵니다. 언더바로 split 하는 로직이 있나봅니다.)

/etc/sysconfig/network 에서 HOSTNAME 을 언더바가 없는 이름으로 설정합니다.

그 후에는 재부팅합니다.


Posted by 자수씨
, |

$JBOSS_HOME/bin/jbossctl.sh
#!/bin/sh
#
# JBoss Controller
# created by vicki
#
ARGV="$@"
JBOSS_RUN="./run.sh"
JBOSS_SHUTDOWN="./shutdown.sh"

case $ARGV in
start)
    $JBOSS_RUN -b 0.0.0.0 &
    ERROR=$?
    ;;
stop)
    $JBOSS_SHUTDOWN -s 0.0.0.0 -S
    ERROR=$?
    ;;
kill)
    ps -ef | grep "bin/run.jar org.jboss.Main" | grep -v grep | awk '{ printf("ProcessID %s Terminated.\n", $2); }'
    ps -ef | grep "bin/run.jar org.jboss.Main" | grep -v grep | awk '{ printf("kill -9 %s\n", $2); }' > tmp.$$
    sh tmp.$$
    rm -f tmp.$$
    ;;
*)
    echo "Invalid parameter [$ARGV]"
    echo "Usage) jbossctl.sh [start|stop|kill]"
    ;;
esac

exit $ERROR


사용법은 간단합니다.

시작: $JBOSS_HOME/bin/jbossctl.sh start
종료: $JBOSS_HOME/bin/jbossctl.sh stop
프로세스 종료: $JBOSS_HOME/bin/jbossctl.sh kill

정상적으로 jboss 가 시작되지 않았을 경우 stop 으로는 되지 않기 때문에 kill 을 통해 프로세스를 종료시킬 수 있도록 만들어보았습니다.

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백