SpringSource DM Server 1.0.2.RELEASE에서 돌려보기

43 views
Skip to first unread message

유동철

unread,
Oct 26, 2009, 12:11:11 AM10/26/09
to OSGi &SpringDM
SpringSource초보지만 책을 보면서 많은 도움이 되고 있습니다..

- 서버
- CentOS5.3 Linux, SpringSource DM Server 1.0.2.RELEASE, JDK1.6.0_16
: JAVA_HOME=/opt/JDK1.6.0_16
: SERVER-HOME=/opt/springsource-dm-server-1.0.2.RELEASE
- Client (Window XP)
- Eclipse SDK3.5.1, Eclipse-rcp-galileo-SR1-win32, sts-2.1.0.SR01
(SpringSource Tool Suite), JDK1.6.0_16
:JAVA_HOME설치

책의 예제(chapter09.HelloWorldWeb, chapter11.HelloSpringDM등)를 다운받은 그대로 클라이언
트에서
Export하여 서버에 installed, start하면 오류가 발생합니다.
Installed하면 <<LAZY>>상태가 됩니다... 다른 Hello등의 예제는 Start까지 오류가 발생하지 않습니다.
클라이언트에서 STS로 테스트할 경우는 잘 됩니다.
---> Eclipse의 WorkSpace는 전부 별도로 잡았습니다.. 하도 안되서 여러 버젼을 설치하여 테스트 중입니다 ^^

질문1. 질문의 범위가 맞는지 모르겠지만 클라이언트에서 개발된 Bundle을 서버에 설치할 때 다른 무엇(?)이
필요한가요? 그렇지는 않을듯한데 ^^;
질문2. 혹시 아래의 com.springsource.server.kernel.dm_1.0.2.RELEASE bundle이
RESOLVED 상태여서
그런가요? Web에서 Start할 수 있는 자료는 찾아봤지만 못 찾고 있습니다 ㅠ.ㅠ


Framework is launched.

id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.2.R34x_v20080826-1230
1 ACTIVE
com.springsource.server.serviceability.tracing.aspects_1.0.2.RELEASE
2 ACTIVE com.springsource.org.aspectj.runtime_1.6.2.RELEASE
3 ACTIVE org.eclipse.equinox.cm_1.0.0.v20080509-1800
4 ACTIVE org.eclipse.osgi.services_3.1.200.v20071203
5 ACTIVE com.springsource.javax.servlet_2.5.0
6 ACTIVE org.springframework.osgi.extender_1.1.3.RELEASE
Fragments=7
7 RESOLVED com.springsource.server.kernel.dm_1.0.2.RELEASE
Master=6
8 ACTIVE org.springframework.beans_2.5.6.A
9 ACTIVE com.springsource.javax.el_1.0.0
10 ACTIVE org.springframework.core_2.5.6.A
11 ACTIVE com.springsource.edu.emory.mathcs.backport_3.0.0
12 ACTIVE com.springsource.slf4j.org.apache.log4j_1.5.6
13 ACTIVE com.springsource.org.aspectj.weaver_1.6.2.RELEASE
14 ACTIVE org.springframework.context_2.5.6.A
15 ACTIVE com.springsource.javax.ejb_3.0.0
16 ACTIVE com.springsource.javax.xml.rpc_1.1.0
17 ACTIVE com.springsource.javax.jms_1.1.0
18 ACTIVE com.springsource.javax.persistence_1.0.0
19 ACTIVE com.springsource.org.aopalliance_1.0.0
20 ACTIVE org.springframework.aop_2.5.6.A
21 ACTIVE org.springframework.orm_2.5.6.A
22 ACTIVE org.springframework.transaction_2.5.6.A
23 ACTIVE org.springframework.jdbc_2.5.6.A
24 ACTIVE org.springframework.web_2.5.6.A
25 ACTIVE com.springsource.javax.servlet.jsp_2.1.0
26 ACTIVE com.springsource.org.apache.taglibs.standard_1.1.2
27 ACTIVE com.springsource.javax.servlet.jsp.jstl_1.1.2
28 ACTIVE org.springframework.osgi.core_1.1.3.RELEASE
29 ACTIVE org.springframework.osgi.io_1.1.3.RELEASE
30 ACTIVE
com.springsource.server.serviceability.ffdc_1.0.2.RELEASE
31 RESOLVED
com.springsource.server.serviceability.ffdc.aspects_1.0.2.RELEASE
32 ACTIVE com.springsource.server.common.math_1.0.2.RELEASE
33 ACTIVE com.springsource.server.kernel.core_1.0.2.RELEASE
34 ACTIVE
com.springsource.server.management.proxy_1.0.2.RELEASE
35 ACTIVE com.springsource.server.ffdc.core_1.0.2.RELEASE
36 ACTIVE com.springsource.json_1.0.1.RELEASE
37 ACTIVE com.springsource.org.antlr_3.0.1
38 ACTIVE com.springsource.server.config.core_1.0.2.RELEASE
39 ACTIVE
com.springsource.server.concurrent.core_1.0.2.RELEASE
40 ACTIVE
com.springsource.com.google.common.collect_0.5.0.alpha
41 RESOLVED com.springsource.server.common.env_1.0.2.RELEASE
42 ACTIVE com.springsource.server.io.core_1.0.2.RELEASE
43 ACTIVE com.springsource.server.control.core_1.0.2.RELEASE
44 ACTIVE com.springsource.org.apache.catalina_6.0.18
Fragments=45, 46
45 RESOLVED com.springsource.org.apache.coyote_6.0.18
Master=44
46 RESOLVED com.springsource.org.apache.jasper_6.0.18
Master=44
47 ACTIVE com.springsource.javax.annotation_1.0.0
48 ACTIVE com.springsource.javax.mail_1.4.0
49 ACTIVE com.springsource.org.apache.juli.extras_6.0.18
50 ACTIVE com.springsource.org.apache.el_6.0.18
51 ACTIVE
com.springsource.org.apache.jasper.org.eclipse.jdt_6.0.18
52 ACTIVE
com.springsource.server.deployer.core_1.0.2.RELEASE
53 ACTIVE com.springsource.server.profile.core_1.0.2.RELEASE
54 ACTIVE com.springsource.server.deployer.hot_1.0.2.RELEASE
55 ACTIVE com.springsource.server.system.core_1.0.2.RELEASE
56 ACTIVE com.springsource.server.servlet.core_1.0.2.RELEASE
57 ACTIVE
com.springsource.server.servlet.tomcat_1.0.2.RELEASE
58 ACTIVE com.springsource.org.apache.catalina.ha_6.0.18
59 ACTIVE com.springsource.org.apache.catalina.tribes_6.0.18
60 ACTIVE com.springsource.server.web.core_1.0.2.RELEASE
61 ACTIVE com.springsource.server.web.dm_1.0.2.RELEASE
62 ACTIVE org.springframework.web.servlet_2.5.6.A
63 ACTIVE
com.springsource.org.apache.commons.fileupload_1.2.0
64 ACTIVE com.springsource.org.apache.commons.io_1.4.0
65 ACTIVE org.springframework.context.support_2.5.6.A
66 ACTIVE
com.springsource.server.servlet.splash_1.0.2.RELEASE
67 ACTIVE
com.springsource.server.servlet.admin_1.0.2.RELEASE
68 ACTIVE org.springframework.ack.test3_1.0.0
69 <<LAZY>> chapter09.HelloWorldWeb_1.0.0

================================================================
start 69
================================================================
osgi> start 69
org.osgi.framework.BundleException: Exception in
chapter09.helloworldweb.Activator.start() of bundle
chapter09.HelloWorldWeb.
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator
(BundleContextImpl.java:1028)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start
(BundleContextImpl.java:984)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker
(BundleHost.java:346)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:265)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:257)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start
(FrameworkCommandProvider.java:257)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
(FrameworkCommandInterpreter.java:150)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
(FrameworkConsole.java:302)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console
(FrameworkConsole.java:287)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run
(FrameworkConsole.java:223)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at chapter09.helloworldweb.Activator.start(Activator.java:17)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run
(BundleContextImpl.java:1009)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator
(BundleContextImpl.java:1003)
... 14 more
Nested Exception:
java.lang.NullPointerException
at chapter09.helloworldweb.Activator.start(Activator.java:17)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run
(BundleContextImpl.java:1009)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator
(BundleContextImpl.java:1003)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start
(BundleContextImpl.java:984)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker
(BundleHost.java:346)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:265)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:257)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start
(FrameworkCommandProvider.java:257)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
(FrameworkCommandInterpreter.java:150)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
(FrameworkConsole.java:302)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console
(FrameworkConsole.java:287)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run
(FrameworkConsole.java:223)
at java.lang.Thread.run(Thread.java:619)
Nested Exception:
java.lang.NullPointerException
at chapter09.helloworldweb.Activator.start(Activator.java:17)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run
(BundleContextImpl.java:1009)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator
(BundleContextImpl.java:1003)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start
(BundleContextImpl.java:984)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker
(BundleHost.java:346)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:265)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start
(AbstractBundle.java:257)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start
(FrameworkCommandProvider.java:257)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute
(FrameworkCommandInterpreter.java:150)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand
(FrameworkConsole.java:302)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console
(FrameworkConsole.java:287)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run
(FrameworkConsole.java:223)
at java.lang.Thread.run(Thread.java:619)


==============================================
HelloWorldWeb Bundle
==============================================
osgi> bundle 69
file:////opt/springsource-dm-server-1.0.2.RELEASE/work/com.springsource.server.deployer/Module/chapter09.HelloWorldWeb_1.0.0.jar-0/chapter09.HelloWorldWeb_1.0.0.jar
[69]
Id=69, Status=RESOLVED Data Root=/opt/springsource-dm-
server-1.0.2.RELEASE/work/equinox-config/org.eclipse.osgi/bundles/69/
data
No registered services.
No services in use.
No exported packages
Imported packages
javax.servlet; version="2.5.0"<file:////opt/springsource-dm-
server-1.0.2.RELEASE/repository/bundles/ext/
com.springsource.javax.servlet-2.5.0.jar [5]>
org.osgi.util.tracker; version="1.3.3"<System Bundle [0]>
org.osgi.framework; version="1.4.0"<System Bundle [0]>
org.osgi.service.http; version="1.2.0"<file:////opt/springsource-
dm-server-1.0.2.RELEASE/repository/bundles/ext/
org.eclipse.osgi.services-3.1.200.v20071203.jar [4]>
javax.servlet.http; version="2.5.0"<file:////opt/springsource-dm-
server-1.0.2.RELEASE/repository/bundles/ext/
com.springsource.javax.servlet-2.5.0.jar [5]>
com.springsource.server.kernel.dm; version="1.0.0"<file:////opt/
springsource-dm-server-1.0.2.RELEASE/repository/bundles/ext/
org.springframework.osgi.extender-1.1.3.RELEASE.jar [6]>
No fragment bundles
Named class space
chapter09.HelloWorldWeb; bundle-version="1.0.0"[provided]
No required bundles

xguru

unread,
Oct 26, 2009, 1:06:41 AM10/26/09
to OSGi &SpringDM
안녕하세요.

올려주신 로그를 보시면

java.lang.NullPointerException
at chapter09.helloworldweb.Activator.start(Activator.java:17)

Activator.java 의 17라인에서 에러가 있는것으로 보이는데요.

다운받으신 예제코드에서라면
service = (HttpService) tracker.getService();
>> service.registerServlet("/hello", new HelloWorldServlet(), null, null);

이게 해당 라인이구요. service 에서 OSGi 의 HttpService 를 못가져온게 원인입니다.

지금 사용하시는 SpringSource DM Server 에선 Tomcat 을 이용하는듯 한데
Tomcat 을 OSGi Http Service 로 등록해주는 번들이 없어서 입니다.

일반적인 웹 컨테이너들은 OSGi http 서비스형태로 제공되기 위해서는 추가 번들이 필요합니다.
보통은 WAR 파일 형식을 사용하기 때문에 9장의 HelloWorldWeb 과
같은 HTTP Servlet 은 잘 지원하지 않기 때문입니다.

Jetty 의 경우는 http://www.eclipse.org/equinox/server/http_in_equinox.php
에 있는대로
- org.eclipse.equinox.http.jetty
- org.eclipse.equinox.http.servlet
두개의 번들을 설치해주면 Jetty 서버를 OSGi Http Service 로 동작하도록 지원해줍니다.

http://www.jarvana.com/jarvana/browse/org/ow2/jonas/jonas-web-container-tomcat-6.0-with-http-service/

여기에 있는 Tomcat 과 httpservice 를 같이 이용하는 부분을 참고하시면 됩니다.
하지만.. 꼭 Servlet 을 HTTP Service 로 써야하는 이유가 있는게 아니시라면
SpringDM 의 WebExtender 를 이용하시는게 편하실겁니다.

그리고 질문하신 com.springsource.server.kernel.dm_1.0.2.RELEASE 번들은
fragment 번들이라 RESOLVED 상태로 보이게 됩니다. 동작엔 문제없습니다.

유동철

unread,
Oct 26, 2009, 11:05:17 PM10/26/09
to OSGi &SpringDM
답변 감사드립니다.. 초보적인 질문이라 죄송하네요 ^^;
질문을 드리다보니 계속 서버쪽 문제 같네요... 이런 질문 드려도 될지 고민 좀 해봐야 겠네요 ^^

chapter13.HelloSpringDM_Web 예제를 Export하여 서버에 설치/시작을 하니 문제가 없습니다...

근데 http://XXX.XXX.XXX.XXX:8080/HelloSpringDM을 하면 오류가 납니다.

HTTP status 404 - /HelloSpringDM
--------------------------------------------------
type : Status report
message : /HelloSpringDM
description : The request resource (/HelloSpringDM) is not available

어떤 문제일지 감조차 안오네요... 혹시나 해서 MANIFEST.MF 파일의 Web-ContextPath:
HelloSpringDM을 Web-ContextPath: /HelloSpringDM으로
수정해서 Export해보았지만 오류가 납니다.

xguru

unread,
Oct 27, 2009, 12:43:20 AM10/27/09
to OSGi &SpringDM
이 정도 질문이시면 이미 초보는 아니신데요 :)

음 로그로 봐선 Web Application 등록이 제대로 안 이루어진듯 한데요.
가능하시면 Log4j 를 Enable 시켜서 SpringDM 의 동작로그를
찍어보셔야 정확히 확인이 될듯 합니다.
제대로 라면 Web App 가 Register 되는 과정이 로그에 표시됩니다.


On Oct 27, 12:05 pm, 유동철 <ydc1...@korea.com> wrote:
> 답변 감사드립니다.. 초보적인 질문이라 죄송하네요 ^^;
> 질문을 드리다보니 계속 서버쪽 문제 같네요... 이런 질문 드려도 될지 고민 좀 해봐야 겠네요 ^^
>
> chapter13.HelloSpringDM_Web 예제를 Export하여 서버에 설치/시작을 하니 문제가 없습니다...
>

> 근데http://XXX.XXX.XXX.XXX:8080/HelloSpringDM을하면 오류가 납니다.

Reply all
Reply to author
Forward
0 new messages