You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Michael Chau <mc...@gmail.com> on 2012/04/17 23:52:54 UTC

Geronino 3 beta Servlet issue

I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 

2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
 due to:javax/naming/NamingException
 in classLoader: 
org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)

Any help is appreciated.

Michael

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
Thank you for all the help.  I will take a look at both of them.


On Apr 22, 2012, at 6:24 PM, li yanli wrote:

> Please also take geronimo-5879 as a reference :
> https://issues.apache.org/jira/browse/GERONIMO-5879
> 
> On Sat, Apr 21, 2012 at 9:39 AM, Forrest Xia <fo...@gmail.com> wrote:
>> I don't know postgres much, but I know there is a sample called daytrader
>> which support multiple databases, which includes postgres, you can refer to
>> a released one for example.
>> 
>> http://svn.apache.org/repos/asf/geronimo/daytrader/tags/daytrader-3.0-beta-1/
>> 
>> 
>> On Fri, Apr 20, 2012 at 3:17 PM, Michael Chau <mt...@yahoo.com> wrote:
>>> 
>>> Thanks, Forrest.  I am using the Ration OSGi tool.  I somehow forgot to
>>> check the box to compile the servlet class into the WEB-INF/classes folder.
>>> 
>>> Now, I'm trying to figure out how to write to a Postgres db using jdbc.  I
>>> haven't been able to find any good examples.  Can you point me to one or
>>> give me some tips on how to go about it?
>>> 
>>> Once again, thanks for the help.
>>> 
>>> michael
>>> 
>>> On Apr 19, 2012, at 9:24 PM, Forrest Xia wrote:
>>> 
>>> Two points here:
>>> 1. What tools you used to genereate this eba? if using eclipse, sugguest
>>> you use Rational development tools for OSGi application[1]
>>> 2. Your sample's web module sample-web_xxx.jar file structure is not
>>> correct, you should put your servlet class into WEB-INF/classes folder
>>> 
>>> [1]
>>> http://www.ibm.com/developerworks/rational/downloads/10/rationaldevtoolsforosgiapplications.html
>>> 
>>> Attached an updated sample for your reference.
>>> 
>>> On Thu, Apr 19, 2012 at 12:42 PM, Michael Chau <mt...@yahoo.com> wrote:
>>>> 
>>>> Sorry, I misunderstood you.  Here it is:
>>>> 
>>>> 
>>>> 
>>>> On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:
>>>> 
>>>> Finding the potential error via "SEE" through the text is hard work for
>>>> me :)
>>>> 
>>>> Can you just attach your eba here? so that I can quickly have a local try
>>>> with your eba.
>>>> 
>>>> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
>>>>> 
>>>>> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>>>>> 
>>>>> SampleApp
>>>>> APPLICATION.MF
>>>>> 
>>>>> Application-Name: sample-app
>>>>> Application-SymbolicName: sample-app
>>>>> Application-ManifestVersion: 1.0
>>>>> Application-Version: 1.0.0.qualifier
>>>>> Application-Content: sample-api;version="1.0.0",
>>>>>  sample-server;version="1.0.0",
>>>>>  sample-web;version="1.0.0"
>>>>> Manifest-Version: 1.0
>>>>> 
>>>>> SampleApi
>>>>> 
>>>>> Manifest-Version: 1.0
>>>>> Bundle-ManifestVersion: 2
>>>>> Bundle-Name: sample-api
>>>>> Bundle-SymbolicName: sample-api
>>>>> Bundle-Version: 1.0.0.qualifier
>>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>>> Export-Package: com.sample.api
>>>>> 
>>>>> 
>>>>> package com.sample.api;
>>>>> 
>>>>> public interface SampleService {
>>>>> public String sayHello(String name);
>>>>> }
>>>>> 
>>>>> 
>>>>> SampleServer
>>>>> 
>>>>> Manifest-Version: 1.0
>>>>> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
>>>>> Bundle-Version: 1.0.0.qualifier
>>>>> Bundle-Name: sample-server
>>>>> Bundle-ManifestVersion: 2
>>>>> Import-Package: com.sample.api
>>>>> Bundle-SymbolicName: sample-server
>>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>>> Export-Package: com.sample.server
>>>>> 
>>>>> Source:
>>>>> package com.sample.server;
>>>>> 
>>>>> import com.sample.api.SampleService;
>>>>> 
>>>>> public class SampleServiceImpl implements SampleService {
>>>>> 
>>>>> public String sayHello(String name) {
>>>>> // TODO Auto-generated method stub
>>>>> return "Hello "+name;
>>>>> }
>>>>> 
>>>>> }
>>>>> 
>>>>> **** Blueprint.xml
>>>>> 
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>>>>>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>>>>> 
>>>>>     <service ref="serviceBean"
>>>>> interface="com.sample.api.SampleService"/>
>>>>> 
>>>>> </blueprint>
>>>>> 
>>>>> SampleWeb
>>>>> 
>>>>> Manifest-Version: 1.0
>>>>> Bundle-ManifestVersion: 2
>>>>> Bundle-Name: sample-web
>>>>> Bundle-SymbolicName: sample-web
>>>>> Bundle-Version: 1.0.0.qualifier
>>>>> Bundle-ClassPath: WEB-INF/classes
>>>>> Web-ContextPath: /sample-web
>>>>> Import-Package: com.sample.api,
>>>>>  javax.naming,
>>>>>  javax.servlet;version="2.5",
>>>>>  javax.servlet.http;version="2.5"
>>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>>> Export-Package: com.sample.client.web
>>>>> 
>>>>> 
>>>>> package com.sample.client.web;
>>>>> 
>>>>> import java.io.IOException;
>>>>> 
>>>>> import javax.naming.InitialContext;
>>>>> import javax.naming.NamingException;
>>>>> import javax.servlet.ServletException;
>>>>> import javax.servlet.http.HttpServlet;
>>>>> import javax.servlet.http.HttpServletRequest;
>>>>> import javax.servlet.http.HttpServletResponse;
>>>>> 
>>>>> import com.sample.api.SampleService;
>>>>> 
>>>>> /**
>>>>>  * Servlet implementation class SampleServlet
>>>>>  */
>>>>> public class SampleServlet extends HttpServlet {
>>>>> private static final long serialVersionUID = 1L;
>>>>> 
>>>>>     /**
>>>>>      * @see HttpServlet#HttpServlet()
>>>>>      */
>>>>>     public SampleServlet() {
>>>>>         super();
>>>>>         // TODO Auto-generated constructor stub
>>>>>     }
>>>>> 
>>>>> /**
>>>>> * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
>>>>> response)
>>>>> */
>>>>> protected void doGet(HttpServletRequest request, HttpServletResponse
>>>>> response) throws ServletException, IOException {
>>>>> // TODO Auto-generated method stub
>>>>> SampleService sample = null;
>>>>> try {
>>>>> InitialContext ic = new InitialContext();
>>>>> sample = (SampleService) ic.lookup("osgi:service/" +
>>>>> SampleService.class.getName());
>>>>> response.getOutputStream().println("**** " + sample.sayHello("Sample
>>>>> Service"));
>>>>> }
>>>>> catch (NamingException e) {
>>>>> e.printStackTrace(System.out);
>>>>> }
>>>>> }
>>>>> 
>>>>> /**
>>>>> * @see HttpServlet#doPost(HttpServletRequest request,
>>>>> HttpServletResponse response)
>>>>> */
>>>>> protected void doPost(HttpServletRequest request, HttpServletResponse
>>>>> response) throws ServletException, IOException {
>>>>> // TODO Auto-generated method stub
>>>>> }
>>>>> 
>>>>> }
>>>>> 
>>>>> **** web.xml
>>>>> 
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xmlns="http://java.sun.com/xml/ns/javaee"
>>>>> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>>>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>>>> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
>>>>> version="3.0">
>>>>>   <display-name>sample-web</display-name>
>>>>>   <servlet>
>>>>> <display-name>SampleServlet</display-name>
>>>>> <servlet-name>SampleServlet</servlet-name>
>>>>> <servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>>>>>   </servlet>
>>>>>   <servlet-mapping>
>>>>> <servlet-name>SampleServlet</servlet-name>
>>>>> <url-pattern>/sample</url-pattern>
>>>>>   </servlet-mapping>
>>>>>   <welcome-file-list>
>>>>>     <welcome-file>index.html</welcome-file>
>>>>>     <welcome-file>index.htm</welcome-file>
>>>>>     <welcome-file>index.jsp</welcome-file>
>>>>>     <welcome-file>default.html</welcome-file>
>>>>>     <welcome-file>default.htm</welcome-file>
>>>>>     <welcome-file>default.jsp</welcome-file>
>>>>>   </welcome-file-list>
>>>>> </web-app>
>>>>> 
>>>>> 
>>>>> 
>>>>> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>>>>> 
>>>>> Can you attach your sample here for a check?
>>>>> 
>>>>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com>
>>>>> wrote:
>>>>>> 
>>>>>> I have my SampleApi (interface) exported it.  I don't believe I'm
>>>>>> suppose to export the implementation (SampleServer) and web bundle(Sample
>>>>>> Web).  But, i just tried exporting them both just to see if it will work and
>>>>>> I'm still getting the same error.  I'm somewhat following the CounterApp
>>>>>> example.  My web bundle is pretty much the same as the CounterWebBundle
>>>>>> (same required import packages and no exports).
>>>>>> 
>>>>>> 
>>>>>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>>>>> 
>>>>>> Have you exported your application classes in Export-Package of
>>>>>> MANIFEST.MF?
>>>>>> 
>>>>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>> Thanks, Ivan.
>>>>>>> 
>>>>>>> I added the javax.naming to the import and now getting this error:
>>>>>>> 
>>>>>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>>>>>>> application for bundle sample-web
>>>>>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>>>>>>> class
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>>>>>>> at
>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
>>>>>>> at
>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>>>>> at
>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>>>> com.sample.client.web.SampleServlet
>>>>>>> at
>>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>>>>>>> at
>>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>>>>>>> at
>>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>>>>>>> at
>>>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>>>>> at
>>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>>>>>>> at
>>>>>>> org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>>>>>>> at
>>>>>>> org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
>>>>>>> ... 11 more
>>>>>>> 
>>>>>>> 
>>>>>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>>>>> 
>>>>>>> From the log files, it seems that javax.naming should be added in the
>>>>>>> import-package list for the wab ?
>>>>>>> 
>>>>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>>>>>> 
>>>>>>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>>>>>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>>>>>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>>>>>> 
>>>>>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>>>>>>> application for bundle sample-web
>>>>>>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>>>>>>> com.sample.client.web.SampleServlet
>>>>>>>>  due to:javax/naming/NamingException
>>>>>>>>  in classLoader:
>>>>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>>>>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>>>>> at
>>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>>>>>>>> at
>>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>>>>>>>> at
>>>>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>>>>>>>> at
>>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>>>>>>>> at
>>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>>>>>> at
>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>>>> at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>> at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>>>>> 
>>>>>>>> Any help is appreciated.
>>>>>>>> 
>>>>>>>> Michael
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Ivan
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Thanks!
>>>>>> 
>>>>>> Regards, Forrest
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Thanks!
>>>>> 
>>>>> Regards, Forrest
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Thanks!
>>>> 
>>>> Regards, Forrest
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Thanks!
>>> 
>>> Regards, Forrest
>>> 
>>> <sample-app2.eba>
>>> 
>>> 
>> 
>> 
>> 
>> --
>> Thanks!
>> 
>> Regards, Forrest
>> 
> 
> 
> 
> -- 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Best Wishes!
> Tina Li


Re: Geronino 3 beta Servlet issue

Posted by li yanli <li...@gmail.com>.
Please also take geronimo-5879 as a reference :
 https://issues.apache.org/jira/browse/GERONIMO-5879

On Sat, Apr 21, 2012 at 9:39 AM, Forrest Xia <fo...@gmail.com> wrote:
> I don't know postgres much, but I know there is a sample called daytrader
> which support multiple databases, which includes postgres, you can refer to
> a released one for example.
>
> http://svn.apache.org/repos/asf/geronimo/daytrader/tags/daytrader-3.0-beta-1/
>
>
> On Fri, Apr 20, 2012 at 3:17 PM, Michael Chau <mt...@yahoo.com> wrote:
>>
>> Thanks, Forrest.  I am using the Ration OSGi tool.  I somehow forgot to
>> check the box to compile the servlet class into the WEB-INF/classes folder.
>>
>> Now, I'm trying to figure out how to write to a Postgres db using jdbc.  I
>> haven't been able to find any good examples.  Can you point me to one or
>> give me some tips on how to go about it?
>>
>> Once again, thanks for the help.
>>
>> michael
>>
>> On Apr 19, 2012, at 9:24 PM, Forrest Xia wrote:
>>
>> Two points here:
>> 1. What tools you used to genereate this eba? if using eclipse, sugguest
>> you use Rational development tools for OSGi application[1]
>> 2. Your sample's web module sample-web_xxx.jar file structure is not
>> correct, you should put your servlet class into WEB-INF/classes folder
>>
>> [1]
>> http://www.ibm.com/developerworks/rational/downloads/10/rationaldevtoolsforosgiapplications.html
>>
>> Attached an updated sample for your reference.
>>
>> On Thu, Apr 19, 2012 at 12:42 PM, Michael Chau <mt...@yahoo.com> wrote:
>>>
>>> Sorry, I misunderstood you.  Here it is:
>>>
>>>
>>>
>>> On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:
>>>
>>> Finding the potential error via "SEE" through the text is hard work for
>>> me :)
>>>
>>> Can you just attach your eba here? so that I can quickly have a local try
>>> with your eba.
>>>
>>> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
>>>>
>>>> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>>>>
>>>> SampleApp
>>>> APPLICATION.MF
>>>>
>>>> Application-Name: sample-app
>>>> Application-SymbolicName: sample-app
>>>> Application-ManifestVersion: 1.0
>>>> Application-Version: 1.0.0.qualifier
>>>> Application-Content: sample-api;version="1.0.0",
>>>>  sample-server;version="1.0.0",
>>>>  sample-web;version="1.0.0"
>>>> Manifest-Version: 1.0
>>>>
>>>> SampleApi
>>>>
>>>> Manifest-Version: 1.0
>>>> Bundle-ManifestVersion: 2
>>>> Bundle-Name: sample-api
>>>> Bundle-SymbolicName: sample-api
>>>> Bundle-Version: 1.0.0.qualifier
>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>> Export-Package: com.sample.api
>>>>
>>>>
>>>> package com.sample.api;
>>>>
>>>> public interface SampleService {
>>>> public String sayHello(String name);
>>>> }
>>>>
>>>>
>>>> SampleServer
>>>>
>>>> Manifest-Version: 1.0
>>>> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
>>>> Bundle-Version: 1.0.0.qualifier
>>>> Bundle-Name: sample-server
>>>> Bundle-ManifestVersion: 2
>>>> Import-Package: com.sample.api
>>>> Bundle-SymbolicName: sample-server
>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>> Export-Package: com.sample.server
>>>>
>>>> Source:
>>>> package com.sample.server;
>>>>
>>>> import com.sample.api.SampleService;
>>>>
>>>> public class SampleServiceImpl implements SampleService {
>>>>
>>>> public String sayHello(String name) {
>>>> // TODO Auto-generated method stub
>>>> return "Hello "+name;
>>>> }
>>>>
>>>> }
>>>>
>>>> **** Blueprint.xml
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>>>>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>>>>
>>>>     <service ref="serviceBean"
>>>> interface="com.sample.api.SampleService"/>
>>>>
>>>> </blueprint>
>>>>
>>>> SampleWeb
>>>>
>>>> Manifest-Version: 1.0
>>>> Bundle-ManifestVersion: 2
>>>> Bundle-Name: sample-web
>>>> Bundle-SymbolicName: sample-web
>>>> Bundle-Version: 1.0.0.qualifier
>>>> Bundle-ClassPath: WEB-INF/classes
>>>> Web-ContextPath: /sample-web
>>>> Import-Package: com.sample.api,
>>>>  javax.naming,
>>>>  javax.servlet;version="2.5",
>>>>  javax.servlet.http;version="2.5"
>>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>>> Export-Package: com.sample.client.web
>>>>
>>>>
>>>> package com.sample.client.web;
>>>>
>>>> import java.io.IOException;
>>>>
>>>> import javax.naming.InitialContext;
>>>> import javax.naming.NamingException;
>>>> import javax.servlet.ServletException;
>>>> import javax.servlet.http.HttpServlet;
>>>> import javax.servlet.http.HttpServletRequest;
>>>> import javax.servlet.http.HttpServletResponse;
>>>>
>>>> import com.sample.api.SampleService;
>>>>
>>>> /**
>>>>  * Servlet implementation class SampleServlet
>>>>  */
>>>> public class SampleServlet extends HttpServlet {
>>>> private static final long serialVersionUID = 1L;
>>>>
>>>>     /**
>>>>      * @see HttpServlet#HttpServlet()
>>>>      */
>>>>     public SampleServlet() {
>>>>         super();
>>>>         // TODO Auto-generated constructor stub
>>>>     }
>>>>
>>>> /**
>>>> * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
>>>> response)
>>>> */
>>>> protected void doGet(HttpServletRequest request, HttpServletResponse
>>>> response) throws ServletException, IOException {
>>>> // TODO Auto-generated method stub
>>>> SampleService sample = null;
>>>> try {
>>>> InitialContext ic = new InitialContext();
>>>> sample = (SampleService) ic.lookup("osgi:service/" +
>>>> SampleService.class.getName());
>>>> response.getOutputStream().println("**** " + sample.sayHello("Sample
>>>> Service"));
>>>> }
>>>> catch (NamingException e) {
>>>> e.printStackTrace(System.out);
>>>> }
>>>> }
>>>>
>>>> /**
>>>> * @see HttpServlet#doPost(HttpServletRequest request,
>>>> HttpServletResponse response)
>>>> */
>>>> protected void doPost(HttpServletRequest request, HttpServletResponse
>>>> response) throws ServletException, IOException {
>>>> // TODO Auto-generated method stub
>>>> }
>>>>
>>>> }
>>>>
>>>> **** web.xml
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> xmlns="http://java.sun.com/xml/ns/javaee"
>>>> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>>> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
>>>> version="3.0">
>>>>   <display-name>sample-web</display-name>
>>>>   <servlet>
>>>> <display-name>SampleServlet</display-name>
>>>> <servlet-name>SampleServlet</servlet-name>
>>>> <servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>>>>   </servlet>
>>>>   <servlet-mapping>
>>>> <servlet-name>SampleServlet</servlet-name>
>>>> <url-pattern>/sample</url-pattern>
>>>>   </servlet-mapping>
>>>>   <welcome-file-list>
>>>>     <welcome-file>index.html</welcome-file>
>>>>     <welcome-file>index.htm</welcome-file>
>>>>     <welcome-file>index.jsp</welcome-file>
>>>>     <welcome-file>default.html</welcome-file>
>>>>     <welcome-file>default.htm</welcome-file>
>>>>     <welcome-file>default.jsp</welcome-file>
>>>>   </welcome-file-list>
>>>> </web-app>
>>>>
>>>>
>>>>
>>>> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>>>>
>>>> Can you attach your sample here for a check?
>>>>
>>>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com>
>>>> wrote:
>>>>>
>>>>> I have my SampleApi (interface) exported it.  I don't believe I'm
>>>>> suppose to export the implementation (SampleServer) and web bundle(Sample
>>>>> Web).  But, i just tried exporting them both just to see if it will work and
>>>>> I'm still getting the same error.  I'm somewhat following the CounterApp
>>>>> example.  My web bundle is pretty much the same as the CounterWebBundle
>>>>> (same required import packages and no exports).
>>>>>
>>>>>
>>>>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>>>>
>>>>> Have you exported your application classes in Export-Package of
>>>>> MANIFEST.MF?
>>>>>
>>>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com>
>>>>> wrote:
>>>>>>
>>>>>> Thanks, Ivan.
>>>>>>
>>>>>> I added the javax.naming to the import and now getting this error:
>>>>>>
>>>>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>>>>>> application for bundle sample-web
>>>>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>>>>>> class
>>>>>> at
>>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
>>>>>> at
>>>>>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
>>>>>> at
>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
>>>>>> at
>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>>>>>> at
>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
>>>>>> at
>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>>>> at
>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>>> com.sample.client.web.SampleServlet
>>>>>> at
>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>>>>>> at
>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>>>>>> at
>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>>>>>> at
>>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>>>> at
>>>>>> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>>>>>> at
>>>>>> org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>>>>>> at
>>>>>> org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>>>>>> at
>>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
>>>>>> ... 11 more
>>>>>>
>>>>>>
>>>>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>>>>
>>>>>> From the log files, it seems that javax.naming should be added in the
>>>>>> import-package list for the wab ?
>>>>>>
>>>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>>>>>
>>>>>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>>>>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>>>>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>>>>>
>>>>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>>>>>> application for bundle sample-web
>>>>>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>>>>>> com.sample.client.web.SampleServlet
>>>>>>>  due to:javax/naming/NamingException
>>>>>>>  in classLoader:
>>>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>>>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>>>>>>> at
>>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>>>>>>> at
>>>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>>>>>>> at
>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>>>>>>> at
>>>>>>> org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>>>>> at
>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>>>>
>>>>>>> Any help is appreciated.
>>>>>>>
>>>>>>> Michael
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ivan
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Thanks!
>>>>>
>>>>> Regards, Forrest
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks!
>>>>
>>>> Regards, Forrest
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks!
>>>
>>> Regards, Forrest
>>>
>>>
>>>
>>
>>
>>
>> --
>> Thanks!
>>
>> Regards, Forrest
>>
>> <sample-app2.eba>
>>
>>
>
>
>
> --
> Thanks!
>
> Regards, Forrest
>



-- 


















Best Wishes!
Tina Li

Re: Geronino 3 beta Servlet issue

Posted by Forrest Xia <fo...@gmail.com>.
I don't know postgres much, but I know there is a sample called daytrader
which support multiple databases, which includes postgres, you can refer to
a released one for example.

http://svn.apache.org/repos/asf/geronimo/daytrader/tags/daytrader-3.0-beta-1/

On Fri, Apr 20, 2012 at 3:17 PM, Michael Chau <mt...@yahoo.com> wrote:

> Thanks, Forrest.  I am using the Ration OSGi tool.  I somehow forgot to
> check the box to compile the servlet class into the WEB-INF/classes folder.
>
> Now, I'm trying to figure out how to write to a Postgres db using jdbc.  I
> haven't been able to find any good examples.  Can you point me to one or
> give me some tips on how to go about it?
>
> Once again, thanks for the help.
>
> michael
>
> On Apr 19, 2012, at 9:24 PM, Forrest Xia wrote:
>
> Two points here:
> 1. What tools you used to genereate this eba? if using eclipse, sugguest
> you use Rational development tools for OSGi application[1]
> 2. Your sample's web module sample-web_xxx.jar file structure is not
> correct, you should put your servlet class into WEB-INF/classes folder
>
> [1]
> http://www.ibm.com/developerworks/rational/downloads/10/rationaldevtoolsforosgiapplications.html
>
> Attached an updated sample for your reference.
>
> On Thu, Apr 19, 2012 at 12:42 PM, Michael Chau <mt...@yahoo.com> wrote:
>
>> Sorry, I misunderstood you.  Here it is:
>>
>>
>>
>> On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:
>>
>> Finding the potential error via "SEE" through the text is hard work for
>> me :)
>>
>> Can you just attach your eba here? so that I can quickly have a local try
>> with your eba.
>>
>> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
>>
>>> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>>>
>>> SampleApp
>>> APPLICATION.MF
>>>
>>> Application-Name: sample-app
>>> Application-SymbolicName: sample-app
>>> Application-ManifestVersion: 1.0
>>> Application-Version: 1.0.0.qualifier
>>> Application-Content: sample-api;version="1.0.0",
>>>  sample-server;version="1.0.0",
>>>  sample-web;version="1.0.0"
>>> Manifest-Version: 1.0
>>>
>>> SampleApi
>>>
>>> Manifest-Version: 1.0
>>> Bundle-ManifestVersion: 2
>>> Bundle-Name: sample-api
>>> Bundle-SymbolicName: sample-api
>>> Bundle-Version: 1.0.0.qualifier
>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>> Export-Package: com.sample.api
>>>
>>>
>>> package com.sample.api;
>>>
>>> public interface SampleService {
>>> public String sayHello(String name);
>>> }
>>>
>>>
>>> SampleServer
>>>
>>> Manifest-Version: 1.0
>>> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
>>> Bundle-Version: 1.0.0.qualifier
>>> Bundle-Name: sample-server
>>> Bundle-ManifestVersion: 2
>>> Import-Package: com.sample.api
>>> Bundle-SymbolicName: sample-server
>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>> Export-Package: com.sample.server
>>>
>>> Source:
>>> package com.sample.server;
>>>
>>> import com.sample.api.SampleService;
>>>
>>> public class SampleServiceImpl implements SampleService {
>>>
>>> public String sayHello(String name) {
>>>  // TODO Auto-generated method stub
>>>  return "Hello "+name;
>>>  }
>>>
>>> }
>>>
>>> **** Blueprint.xml
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>>>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>>>
>>>     <service ref="serviceBean" interface="com.sample.api.SampleService"
>>> />
>>>
>>> </blueprint>
>>>
>>> SampleWeb
>>>
>>> Manifest-Version: 1.0
>>> Bundle-ManifestVersion: 2
>>> Bundle-Name: sample-web
>>> Bundle-SymbolicName: sample-web
>>> Bundle-Version: 1.0.0.qualifier
>>> Bundle-ClassPath: WEB-INF/classes
>>> Web-ContextPath: /sample-web
>>> Import-Package: com.sample.api,
>>>  javax.naming,
>>>  javax.servlet;version="2.5",
>>>  javax.servlet.http;version="2.5"
>>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>>> Export-Package: com.sample.client.web
>>>
>>>
>>> package com.sample.client.web;
>>>
>>> import java.io.IOException;
>>>
>>> import javax.naming.InitialContext;
>>> import javax.naming.NamingException;
>>> import javax.servlet.ServletException;
>>> import javax.servlet.http.HttpServlet;
>>> import javax.servlet.http.HttpServletRequest;
>>> import javax.servlet.http.HttpServletResponse;
>>>
>>> import com.sample.api.SampleService;
>>>
>>> /**
>>>  * Servlet implementation class SampleServlet
>>>  */
>>> public class SampleServlet extends HttpServlet {
>>> private static final long serialVersionUID = 1L;
>>>
>>>     /**
>>>      * @see HttpServlet#HttpServlet()
>>>      */
>>>     public SampleServlet() {
>>>         super();
>>>         // TODO Auto-generated constructor stub
>>>     }
>>>
>>> /**
>>>  * @see HttpServlet#doGet(HttpServletRequest request,
>>> HttpServletResponse response)
>>>  */
>>> protected void doGet(HttpServletRequest request, HttpServletResponse
>>> response) throws ServletException, IOException {
>>>  // TODO Auto-generated method stub
>>> SampleService sample = null;
>>> try {
>>>  InitialContext ic = new InitialContext();
>>> sample = (SampleService) ic.lookup("osgi:service/" +
>>> SampleService.class.getName());
>>>  response.getOutputStream().println("**** " + sample.sayHello("Sample
>>> Service"));
>>> }
>>> catch (NamingException e) {
>>>  e.printStackTrace(System.out);
>>> }
>>> }
>>>
>>> /**
>>>  * @see HttpServlet#doPost(HttpServletRequest request,
>>> HttpServletResponse response)
>>>  */
>>> protected void doPost(HttpServletRequest request, HttpServletResponse
>>> response) throws ServletException, IOException {
>>>  // TODO Auto-generated method stub
>>> }
>>>
>>> }
>>>
>>> **** web.xml
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="
>>> http://java.sun.com/xml/ns/javaee" xmlns:web="
>>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="
>>> http://java.sun.com/xml/ns/javaee
>>> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
>>> version="3.0">
>>>   <display-name>sample-web</display-name>
>>>   <servlet>
>>>  <display-name>SampleServlet</display-name>
>>>  <servlet-name>SampleServlet</servlet-name>
>>>  <servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>>>   </servlet>
>>>   <servlet-mapping>
>>> <servlet-name>SampleServlet</servlet-name>
>>>  <url-pattern>/sample</url-pattern>
>>>   </servlet-mapping>
>>>   <welcome-file-list>
>>>     <welcome-file>index.html</welcome-file>
>>>     <welcome-file>index.htm</welcome-file>
>>>     <welcome-file>index.jsp</welcome-file>
>>>     <welcome-file>default.html</welcome-file>
>>>     <welcome-file>default.htm</welcome-file>
>>>     <welcome-file>default.jsp</welcome-file>
>>>   </welcome-file-list>
>>> </web-app>
>>>
>>>
>>>
>>> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>>>
>>> Can you attach your sample here for a check?
>>>
>>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com>wrote:
>>>
>>>> I have my SampleApi (interface) exported it.  I don't believe I'm
>>>> suppose to export the implementation (SampleServer) and web bundle(Sample
>>>> Web).  But, i just tried exporting them both just to see if it will work
>>>> and I'm still getting the same error.  I'm somewhat following the
>>>> CounterApp example.  My web bundle is pretty much the same as the
>>>> CounterWebBundle (same required import packages and no exports).
>>>>
>>>>
>>>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>>>
>>>> Have you exported your application classes in Export-Package of
>>>> MANIFEST.MF?
>>>>
>>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com>wrote:
>>>>
>>>>> Thanks, Ivan.
>>>>>
>>>>> I added the javax.naming to the import and now getting this error:
>>>>>
>>>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>>>>> application for bundle sample-web
>>>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>>>>> class
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>>>> ServletSecurityAnnotationMergeHandler.java:79)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(
>>>>> MergeHelper.java:418)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(
>>>>> AbstractWebModuleBuilder.java:493)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(
>>>>> AbstractWebModuleBuilder.java:436)
>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>>>> WebApplication.java:213)
>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>>>> WebApplication.java:125)
>>>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>>>> Executors.java:441)
>>>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>>>> ThreadPoolExecutor.java:886)
>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>> ThreadPoolExecutor.java:908)
>>>>>  at java.lang.Thread.run(Thread.java:680)
>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>> com.sample.client.web.SampleServlet
>>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(
>>>>> BundleLoader.java:513)
>>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>>>> BundleLoader.java:429)
>>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>>>> BundleLoader.java:417)
>>>>>  at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(
>>>>> GeronimoClassLoader.java:85)
>>>>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(
>>>>> BundleLoader.java:345)
>>>>>  at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(
>>>>> BundleHost.java:229)
>>>>>  at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(
>>>>> AbstractBundle.java:1207)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>>>> ServletSecurityAnnotationMergeHandler.java:52)
>>>>>  ... 11 more
>>>>>
>>>>>
>>>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>>>
>>>>> From the log files, it seems that javax.naming should be added in the
>>>>> import-package list for the wab ?
>>>>>
>>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>>>
>>>>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>>>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>>>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>>>>
>>>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>>>>> application for bundle sample-web
>>>>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>>>>> com.sample.client.web.SampleServlet
>>>>>>  due to:javax/naming/NamingException
>>>>>>  in classLoader:
>>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>>>  at
>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
>>>>>> AbstractWebModuleBuilder.java:663)
>>>>>>  at
>>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
>>>>>> AbstractWebModuleBuilder.java:698)
>>>>>>  at
>>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
>>>>>> TomcatModuleBuilder.java:483)
>>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>>>>> WebApplication.java:218)
>>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>>>>> WebApplication.java:125)
>>>>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>>>>> Executors.java:441)
>>>>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303
>>>>>> )
>>>>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>>>>> ThreadPoolExecutor.java:886)
>>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>>> ThreadPoolExecutor.java:908)
>>>>>>  at java.lang.Thread.run(Thread.java:680)
>>>>>>
>>>>>> Any help is appreciated.
>>>>>>
>>>>>> Michael
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ivan
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Thanks!
>>>>
>>>> Regards, Forrest
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks!
>>>
>>> Regards, Forrest
>>>
>>>
>>>
>>
>>
>> --
>> Thanks!
>>
>> Regards, Forrest
>>
>>
>>
>>
>
>
> --
> Thanks!
>
> Regards, Forrest
>
> <sample-app2.eba>
>
>
>


-- 
Thanks!

Regards, Forrest

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
Thanks, Forrest.  I am using the Ration OSGi tool.  I somehow forgot to check the box to compile the servlet class into the WEB-INF/classes folder.

Now, I'm trying to figure out how to write to a Postgres db using jdbc.  I haven't been able to find any good examples.  Can you point me to one or give me some tips on how to go about it?

Once again, thanks for the help.

michael

On Apr 19, 2012, at 9:24 PM, Forrest Xia wrote:

> Two points here:
> 1. What tools you used to genereate this eba? if using eclipse, sugguest you use Rational development tools for OSGi application[1]
> 2. Your sample's web module sample-web_xxx.jar file structure is not correct, you should put your servlet class into WEB-INF/classes folder
> 
> [1] http://www.ibm.com/developerworks/rational/downloads/10/rationaldevtoolsforosgiapplications.html
> 
> Attached an updated sample for your reference.
> 
> On Thu, Apr 19, 2012 at 12:42 PM, Michael Chau <mt...@yahoo.com> wrote:
> Sorry, I misunderstood you.  Here it is: 
> 
> 
> 
> On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:
> 
>> Finding the potential error via "SEE" through the text is hard work for me :) 
>> 
>> Can you just attach your eba here? so that I can quickly have a local try with your eba.
>> 
>> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
>> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>> 
>> SampleApp
>> APPLICATION.MF
>> 
>> Application-Name: sample-app
>> Application-SymbolicName: sample-app
>> Application-ManifestVersion: 1.0
>> Application-Version: 1.0.0.qualifier
>> Application-Content: sample-api;version="1.0.0",
>>  sample-server;version="1.0.0",
>>  sample-web;version="1.0.0"
>> Manifest-Version: 1.0
>> 
>> SampleApi
>> 
>> Manifest-Version: 1.0
>> Bundle-ManifestVersion: 2
>> Bundle-Name: sample-api
>> Bundle-SymbolicName: sample-api
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.api
>> 
>> 
>> package com.sample.api;
>> 
>> public interface SampleService {
>> 	public String sayHello(String name);
>> }
>> 
>> 
>> SampleServer
>> 
>> Manifest-Version: 1.0
>> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-Name: sample-server
>> Bundle-ManifestVersion: 2
>> Import-Package: com.sample.api
>> Bundle-SymbolicName: sample-server
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.server
>> 
>> Source:
>> package com.sample.server;
>> 
>> import com.sample.api.SampleService;
>> 
>> public class SampleServiceImpl implements SampleService {
>> 
>> 	public String sayHello(String name) {
>> 		// TODO Auto-generated method stub
>> 		return "Hello "+name;
>> 	}
>> 
>> }
>> 
>> **** Blueprint.xml
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>> 
>>     <service ref="serviceBean" interface="com.sample.api.SampleService"/>
>> 
>> </blueprint>
>> 
>> SampleWeb
>> 
>> Manifest-Version: 1.0
>> Bundle-ManifestVersion: 2
>> Bundle-Name: sample-web
>> Bundle-SymbolicName: sample-web
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-ClassPath: WEB-INF/classes
>> Web-ContextPath: /sample-web
>> Import-Package: com.sample.api,
>>  javax.naming,
>>  javax.servlet;version="2.5",
>>  javax.servlet.http;version="2.5"
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.client.web
>> 
>> 
>> package com.sample.client.web;
>> 
>> import java.io.IOException;
>> 
>> import javax.naming.InitialContext;
>> import javax.naming.NamingException;
>> import javax.servlet.ServletException;
>> import javax.servlet.http.HttpServlet;
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>> 
>> import com.sample.api.SampleService;
>> 
>> /**
>>  * Servlet implementation class SampleServlet
>>  */
>> public class SampleServlet extends HttpServlet {
>> 	private static final long serialVersionUID = 1L;
>>        
>>     /**
>>      * @see HttpServlet#HttpServlet()
>>      */
>>     public SampleServlet() {
>>         super();
>>         // TODO Auto-generated constructor stub
>>     }
>> 
>> 	/**
>> 	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
>> 	 */
>> 	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
>> 		// TODO Auto-generated method stub
>> 		SampleService sample = null;
>> 		try {
>> 			InitialContext ic = new InitialContext();
>> 			sample = (SampleService) ic.lookup("osgi:service/" + SampleService.class.getName());
>> 			response.getOutputStream().println("**** " + sample.sayHello("Sample Service"));
>> 		}
>> 		catch (NamingException e) {
>> 			e.printStackTrace(System.out);
>> 		}
>> 	}
>> 
>> 	/**
>> 	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
>> 	 */
>> 	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
>> 		// TODO Auto-generated method stub
>> 	}
>> 
>> }
>> 
>> **** web.xml
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
>>   <display-name>sample-web</display-name>
>>   <servlet>
>> 		<display-name>SampleServlet</display-name>
>> 		<servlet-name>SampleServlet</servlet-name>
>> 		<servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>>   </servlet>
>>   <servlet-mapping>
>> 		<servlet-name>SampleServlet</servlet-name>
>> 		<url-pattern>/sample</url-pattern>
>>   </servlet-mapping>
>>   <welcome-file-list>
>>     <welcome-file>index.html</welcome-file>
>>     <welcome-file>index.htm</welcome-file>
>>     <welcome-file>index.jsp</welcome-file>
>>     <welcome-file>default.html</welcome-file>
>>     <welcome-file>default.htm</welcome-file>
>>     <welcome-file>default.jsp</welcome-file>
>>   </welcome-file-list>
>> </web-app>
>> 
>> 
>> 
>> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>> 
>>> Can you attach your sample here for a check?
>>> 
>>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com> wrote:
>>> I have my SampleApi (interface) exported it.  I don't believe I'm suppose to export the implementation (SampleServer) and web bundle(Sample Web).  But, i just tried exporting them both just to see if it will work and I'm still getting the same error.  I'm somewhat following the CounterApp example.  My web bundle is pretty much the same as the CounterWebBundle (same required import packages and no exports).
>>> 
>>> 
>>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>> 
>>>> Have you exported your application classes in Export-Package of MANIFEST.MF?
>>>> 
>>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
>>>> Thanks, Ivan.
>>>> 
>>>> I added the javax.naming to the import and now getting this error:
>>>> 
>>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web application for bundle sample-web
>>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet class
>>>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
>>>> 	at org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>> 	at java.lang.Thread.run(Thread.java:680)
>>>> Caused by: java.lang.ClassNotFoundException: com.sample.client.web.SampleServlet
>>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>>>> 	at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>>>> 	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>>>> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>>>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
>>>> 	... 11 more
>>>> 
>>>> 
>>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>> 
>>>>> From the log files, it seems that javax.naming should be added in the import-package list for the wab ?
>>>>> 
>>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>>> I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 
>>>>> 
>>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
>>>>> java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
>>>>>  due to:javax/naming/NamingException
>>>>>  in classLoader: 
>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>>> 	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>>>>> 	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>> 	at java.lang.Thread.run(Thread.java:680)
>>>>> 
>>>>> Any help is appreciated.
>>>>> 
>>>>> Michael
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Ivan
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Thanks!
>>>> 
>>>> Regards, Forrest
>>>> 
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Thanks!
>>> 
>>> Regards, Forrest
>>> 
>> 
>> 
>> 
>> 
>> -- 
>> Thanks!
>> 
>> Regards, Forrest
>> 
> 
> 
> 
> 
> 
> -- 
> Thanks!
> 
> Regards, Forrest
> 
> <sample-app2.eba>


Re: Geronino 3 beta Servlet issue

Posted by Forrest Xia <fo...@gmail.com>.
Two points here:
1. What tools you used to genereate this eba? if using eclipse, sugguest
you use Rational development tools for OSGi application[1]
2. Your sample's web module sample-web_xxx.jar file structure is not
correct, you should put your servlet class into WEB-INF/classes folder

[1]
http://www.ibm.com/developerworks/rational/downloads/10/rationaldevtoolsforosgiapplications.html

Attached an updated sample for your reference.

On Thu, Apr 19, 2012 at 12:42 PM, Michael Chau <mt...@yahoo.com> wrote:

> Sorry, I misunderstood you.  Here it is:
>
>
>
> On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:
>
> Finding the potential error via "SEE" through the text is hard work for me
> :)
>
> Can you just attach your eba here? so that I can quickly have a local try
> with your eba.
>
> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
>
>> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>>
>> SampleApp
>> APPLICATION.MF
>>
>> Application-Name: sample-app
>> Application-SymbolicName: sample-app
>> Application-ManifestVersion: 1.0
>> Application-Version: 1.0.0.qualifier
>> Application-Content: sample-api;version="1.0.0",
>>  sample-server;version="1.0.0",
>>  sample-web;version="1.0.0"
>> Manifest-Version: 1.0
>>
>> SampleApi
>>
>> Manifest-Version: 1.0
>> Bundle-ManifestVersion: 2
>> Bundle-Name: sample-api
>> Bundle-SymbolicName: sample-api
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.api
>>
>>
>> package com.sample.api;
>>
>> public interface SampleService {
>> public String sayHello(String name);
>> }
>>
>>
>> SampleServer
>>
>> Manifest-Version: 1.0
>> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-Name: sample-server
>> Bundle-ManifestVersion: 2
>> Import-Package: com.sample.api
>> Bundle-SymbolicName: sample-server
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.server
>>
>> Source:
>> package com.sample.server;
>>
>> import com.sample.api.SampleService;
>>
>> public class SampleServiceImpl implements SampleService {
>>
>> public String sayHello(String name) {
>>  // TODO Auto-generated method stub
>>  return "Hello "+name;
>>  }
>>
>> }
>>
>> **** Blueprint.xml
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>>
>>     <service ref="serviceBean" interface="com.sample.api.SampleService"/>
>>
>> </blueprint>
>>
>> SampleWeb
>>
>> Manifest-Version: 1.0
>> Bundle-ManifestVersion: 2
>> Bundle-Name: sample-web
>> Bundle-SymbolicName: sample-web
>> Bundle-Version: 1.0.0.qualifier
>> Bundle-ClassPath: WEB-INF/classes
>> Web-ContextPath: /sample-web
>> Import-Package: com.sample.api,
>>  javax.naming,
>>  javax.servlet;version="2.5",
>>  javax.servlet.http;version="2.5"
>> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
>> Export-Package: com.sample.client.web
>>
>>
>> package com.sample.client.web;
>>
>> import java.io.IOException;
>>
>> import javax.naming.InitialContext;
>> import javax.naming.NamingException;
>> import javax.servlet.ServletException;
>> import javax.servlet.http.HttpServlet;
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>>
>> import com.sample.api.SampleService;
>>
>> /**
>>  * Servlet implementation class SampleServlet
>>  */
>> public class SampleServlet extends HttpServlet {
>> private static final long serialVersionUID = 1L;
>>
>>     /**
>>      * @see HttpServlet#HttpServlet()
>>      */
>>     public SampleServlet() {
>>         super();
>>         // TODO Auto-generated constructor stub
>>     }
>>
>> /**
>>  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
>> response)
>>  */
>> protected void doGet(HttpServletRequest request, HttpServletResponse
>> response) throws ServletException, IOException {
>>  // TODO Auto-generated method stub
>> SampleService sample = null;
>> try {
>>  InitialContext ic = new InitialContext();
>> sample = (SampleService) ic.lookup("osgi:service/" +
>> SampleService.class.getName());
>>  response.getOutputStream().println("**** " + sample.sayHello("Sample
>> Service"));
>> }
>> catch (NamingException e) {
>>  e.printStackTrace(System.out);
>> }
>> }
>>
>> /**
>>  * @see HttpServlet#doPost(HttpServletRequest request,
>> HttpServletResponse response)
>>  */
>> protected void doPost(HttpServletRequest request, HttpServletResponse
>> response) throws ServletException, IOException {
>>  // TODO Auto-generated method stub
>> }
>>
>> }
>>
>> **** web.xml
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="
>> http://java.sun.com/xml/ns/javaee" xmlns:web="
>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="
>> http://java.sun.com/xml/ns/javaee
>> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version
>> ="3.0">
>>   <display-name>sample-web</display-name>
>>   <servlet>
>>  <display-name>SampleServlet</display-name>
>>  <servlet-name>SampleServlet</servlet-name>
>>  <servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>>   </servlet>
>>   <servlet-mapping>
>> <servlet-name>SampleServlet</servlet-name>
>>  <url-pattern>/sample</url-pattern>
>>   </servlet-mapping>
>>   <welcome-file-list>
>>     <welcome-file>index.html</welcome-file>
>>     <welcome-file>index.htm</welcome-file>
>>     <welcome-file>index.jsp</welcome-file>
>>     <welcome-file>default.html</welcome-file>
>>     <welcome-file>default.htm</welcome-file>
>>     <welcome-file>default.jsp</welcome-file>
>>   </welcome-file-list>
>> </web-app>
>>
>>
>>
>> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>>
>> Can you attach your sample here for a check?
>>
>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com>wrote:
>>
>>> I have my SampleApi (interface) exported it.  I don't believe I'm
>>> suppose to export the implementation (SampleServer) and web bundle(Sample
>>> Web).  But, i just tried exporting them both just to see if it will work
>>> and I'm still getting the same error.  I'm somewhat following the
>>> CounterApp example.  My web bundle is pretty much the same as the
>>> CounterWebBundle (same required import packages and no exports).
>>>
>>>
>>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>>
>>> Have you exported your application classes in Export-Package of
>>> MANIFEST.MF?
>>>
>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com>wrote:
>>>
>>>> Thanks, Ivan.
>>>>
>>>> I added the javax.naming to the import and now getting this error:
>>>>
>>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>>>> application for bundle sample-web
>>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>>>> class
>>>>  at
>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>>> ServletSecurityAnnotationMergeHandler.java:79)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(
>>>> MergeHelper.java:418)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(
>>>> AbstractWebModuleBuilder.java:493)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(
>>>> AbstractWebModuleBuilder.java:436)
>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>>> WebApplication.java:213)
>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>>> WebApplication.java:125)
>>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>>> Executors.java:441)
>>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>>> ThreadPoolExecutor.java:886)
>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>> ThreadPoolExecutor.java:908)
>>>>  at java.lang.Thread.run(Thread.java:680)
>>>> Caused by: java.lang.ClassNotFoundException:
>>>> com.sample.client.web.SampleServlet
>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(
>>>> BundleLoader.java:513)
>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>>> BundleLoader.java:429)
>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>>> BundleLoader.java:417)
>>>>  at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(
>>>> GeronimoClassLoader.java:85)
>>>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>>  at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(
>>>> BundleLoader.java:345)
>>>>  at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(
>>>> BundleHost.java:229)
>>>>  at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(
>>>> AbstractBundle.java:1207)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>>> ServletSecurityAnnotationMergeHandler.java:52)
>>>>  ... 11 more
>>>>
>>>>
>>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>>
>>>> From the log files, it seems that javax.naming should be added in the
>>>> import-package list for the wab ?
>>>>
>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>>
>>>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>>>
>>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>>>> application for bundle sample-web
>>>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>>>> com.sample.client.web.SampleServlet
>>>>>  due to:javax/naming/NamingException
>>>>>  in classLoader:
>>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
>>>>> AbstractWebModuleBuilder.java:663)
>>>>>  at
>>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
>>>>> AbstractWebModuleBuilder.java:698)
>>>>>  at
>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
>>>>> TomcatModuleBuilder.java:483)
>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>>>> WebApplication.java:218)
>>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>>>> WebApplication.java:125)
>>>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>>>> Executors.java:441)
>>>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>>>> ThreadPoolExecutor.java:886)
>>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>> ThreadPoolExecutor.java:908)
>>>>>  at java.lang.Thread.run(Thread.java:680)
>>>>>
>>>>> Any help is appreciated.
>>>>>
>>>>> Michael
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Ivan
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks!
>>>
>>> Regards, Forrest
>>>
>>>
>>>
>>
>>
>> --
>> Thanks!
>>
>> Regards, Forrest
>>
>>
>>
>
>
> --
> Thanks!
>
> Regards, Forrest
>
>
>
>


-- 
Thanks!

Regards, Forrest

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
Sorry, I misunderstood you.  Here it is: 


On Apr 19, 2012, at 12:41 AM, Forrest Xia wrote:

> Finding the potential error via "SEE" through the text is hard work for me :) 
> 
> Can you just attach your eba here? so that I can quickly have a local try with your eba.
> 
> On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:
> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
> 
> SampleApp
> APPLICATION.MF
> 
> Application-Name: sample-app
> Application-SymbolicName: sample-app
> Application-ManifestVersion: 1.0
> Application-Version: 1.0.0.qualifier
> Application-Content: sample-api;version="1.0.0",
>  sample-server;version="1.0.0",
>  sample-web;version="1.0.0"
> Manifest-Version: 1.0
> 
> SampleApi
> 
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: sample-api
> Bundle-SymbolicName: sample-api
> Bundle-Version: 1.0.0.qualifier
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.api
> 
> 
> package com.sample.api;
> 
> public interface SampleService {
> 	public String sayHello(String name);
> }
> 
> 
> SampleServer
> 
> Manifest-Version: 1.0
> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
> Bundle-Version: 1.0.0.qualifier
> Bundle-Name: sample-server
> Bundle-ManifestVersion: 2
> Import-Package: com.sample.api
> Bundle-SymbolicName: sample-server
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.server
> 
> Source:
> package com.sample.server;
> 
> import com.sample.api.SampleService;
> 
> public class SampleServiceImpl implements SampleService {
> 
> 	public String sayHello(String name) {
> 		// TODO Auto-generated method stub
> 		return "Hello "+name;
> 	}
> 
> }
> 
> **** Blueprint.xml
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
> 
>     <service ref="serviceBean" interface="com.sample.api.SampleService"/>
> 
> </blueprint>
> 
> SampleWeb
> 
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: sample-web
> Bundle-SymbolicName: sample-web
> Bundle-Version: 1.0.0.qualifier
> Bundle-ClassPath: WEB-INF/classes
> Web-ContextPath: /sample-web
> Import-Package: com.sample.api,
>  javax.naming,
>  javax.servlet;version="2.5",
>  javax.servlet.http;version="2.5"
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.client.web
> 
> 
> package com.sample.client.web;
> 
> import java.io.IOException;
> 
> import javax.naming.InitialContext;
> import javax.naming.NamingException;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> 
> import com.sample.api.SampleService;
> 
> /**
>  * Servlet implementation class SampleServlet
>  */
> public class SampleServlet extends HttpServlet {
> 	private static final long serialVersionUID = 1L;
>        
>     /**
>      * @see HttpServlet#HttpServlet()
>      */
>     public SampleServlet() {
>         super();
>         // TODO Auto-generated constructor stub
>     }
> 
> 	/**
> 	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
> 	 */
> 	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> 		// TODO Auto-generated method stub
> 		SampleService sample = null;
> 		try {
> 			InitialContext ic = new InitialContext();
> 			sample = (SampleService) ic.lookup("osgi:service/" + SampleService.class.getName());
> 			response.getOutputStream().println("**** " + sample.sayHello("Sample Service"));
> 		}
> 		catch (NamingException e) {
> 			e.printStackTrace(System.out);
> 		}
> 	}
> 
> 	/**
> 	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
> 	 */
> 	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
> 		// TODO Auto-generated method stub
> 	}
> 
> }
> 
> **** web.xml
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
>   <display-name>sample-web</display-name>
>   <servlet>
> 		<display-name>SampleServlet</display-name>
> 		<servlet-name>SampleServlet</servlet-name>
> 		<servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>   </servlet>
>   <servlet-mapping>
> 		<servlet-name>SampleServlet</servlet-name>
> 		<url-pattern>/sample</url-pattern>
>   </servlet-mapping>
>   <welcome-file-list>
>     <welcome-file>index.html</welcome-file>
>     <welcome-file>index.htm</welcome-file>
>     <welcome-file>index.jsp</welcome-file>
>     <welcome-file>default.html</welcome-file>
>     <welcome-file>default.htm</welcome-file>
>     <welcome-file>default.jsp</welcome-file>
>   </welcome-file-list>
> </web-app>
> 
> 
> 
> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
> 
>> Can you attach your sample here for a check?
>> 
>> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com> wrote:
>> I have my SampleApi (interface) exported it.  I don't believe I'm suppose to export the implementation (SampleServer) and web bundle(Sample Web).  But, i just tried exporting them both just to see if it will work and I'm still getting the same error.  I'm somewhat following the CounterApp example.  My web bundle is pretty much the same as the CounterWebBundle (same required import packages and no exports).
>> 
>> 
>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>> 
>>> Have you exported your application classes in Export-Package of MANIFEST.MF?
>>> 
>>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
>>> Thanks, Ivan.
>>> 
>>> I added the javax.naming to the import and now getting this error:
>>> 
>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web application for bundle sample-web
>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet class
>>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
>>> 	at org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>> 	at java.lang.Thread.run(Thread.java:680)
>>> Caused by: java.lang.ClassNotFoundException: com.sample.client.web.SampleServlet
>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>>> 	at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>> 	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>>> 	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>>> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
>>> 	... 11 more
>>> 
>>> 
>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>> 
>>>> From the log files, it seems that javax.naming should be added in the import-package list for the wab ?
>>>> 
>>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>> I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 
>>>> 
>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
>>>> java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
>>>>  due to:javax/naming/NamingException
>>>>  in classLoader: 
>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>> 	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>>>> 	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>> 	at java.lang.Thread.run(Thread.java:680)
>>>> 
>>>> Any help is appreciated.
>>>> 
>>>> Michael
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Ivan
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Thanks!
>>> 
>>> Regards, Forrest
>>> 
>> 
>> 
>> 
>> 
>> -- 
>> Thanks!
>> 
>> Regards, Forrest
>> 
> 
> 
> 
> 
> -- 
> Thanks!
> 
> Regards, Forrest
> 


Re: Geronino 3 beta Servlet issue

Posted by Forrest Xia <fo...@gmail.com>.
Finding the potential error via "SEE" through the text is hard work for me
:)

Can you just attach your eba here? so that I can quickly have a local try
with your eba.

On Thu, Apr 19, 2012 at 1:07 PM, Michael Chau <mt...@yahoo.com> wrote:

> Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.
>
> SampleApp
> APPLICATION.MF
>
> Application-Name: sample-app
> Application-SymbolicName: sample-app
> Application-ManifestVersion: 1.0
> Application-Version: 1.0.0.qualifier
> Application-Content: sample-api;version="1.0.0",
>  sample-server;version="1.0.0",
>  sample-web;version="1.0.0"
> Manifest-Version: 1.0
>
> SampleApi
>
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: sample-api
> Bundle-SymbolicName: sample-api
> Bundle-Version: 1.0.0.qualifier
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.api
>
>
> package com.sample.api;
>
> public interface SampleService {
> public String sayHello(String name);
> }
>
>
> SampleServer
>
> Manifest-Version: 1.0
> Bundle-Blueprint: OSGI-INF/blueprint/*.xml
> Bundle-Version: 1.0.0.qualifier
> Bundle-Name: sample-server
> Bundle-ManifestVersion: 2
> Import-Package: com.sample.api
> Bundle-SymbolicName: sample-server
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.server
>
> Source:
> package com.sample.server;
>
> import com.sample.api.SampleService;
>
> public class SampleServiceImpl implements SampleService {
>
> public String sayHello(String name) {
> // TODO Auto-generated method stub
> return "Hello "+name;
> }
>
> }
>
> **** Blueprint.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>     <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>
>
>     <service ref="serviceBean" interface="com.sample.api.SampleService"/>
>
> </blueprint>
>
> SampleWeb
>
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: sample-web
> Bundle-SymbolicName: sample-web
> Bundle-Version: 1.0.0.qualifier
> Bundle-ClassPath: WEB-INF/classes
> Web-ContextPath: /sample-web
> Import-Package: com.sample.api,
>  javax.naming,
>  javax.servlet;version="2.5",
>  javax.servlet.http;version="2.5"
> Bundle-RequiredExecutionEnvironment: JavaSE-1.6
> Export-Package: com.sample.client.web
>
>
> package com.sample.client.web;
>
> import java.io.IOException;
>
> import javax.naming.InitialContext;
> import javax.naming.NamingException;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> import com.sample.api.SampleService;
>
> /**
>  * Servlet implementation class SampleServlet
>  */
> public class SampleServlet extends HttpServlet {
> private static final long serialVersionUID = 1L;
>
>     /**
>      * @see HttpServlet#HttpServlet()
>      */
>     public SampleServlet() {
>         super();
>         // TODO Auto-generated constructor stub
>     }
>
> /**
>  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
> response)
>  */
> protected void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
> // TODO Auto-generated method stub
> SampleService sample = null;
> try {
> InitialContext ic = new InitialContext();
> sample = (SampleService) ic.lookup("osgi:service/" +
> SampleService.class.getName());
> response.getOutputStream().println("**** " + sample.sayHello("Sample
> Service"));
> }
> catch (NamingException e) {
> e.printStackTrace(System.out);
> }
> }
>
> /**
>  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
> response)
>  */
> protected void doPost(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
> // TODO Auto-generated method stub
> }
>
> }
>
> **** web.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="
> http://java.sun.com/xml/ns/javaee" xmlns:web="
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="
> http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version=
> "3.0">
>   <display-name>sample-web</display-name>
>   <servlet>
> <display-name>SampleServlet</display-name>
> <servlet-name>SampleServlet</servlet-name>
> <servlet-class>com.sample.client.web.SampleServlet</servlet-class>
>   </servlet>
>   <servlet-mapping>
> <servlet-name>SampleServlet</servlet-name>
> <url-pattern>/sample</url-pattern>
>   </servlet-mapping>
>   <welcome-file-list>
>     <welcome-file>index.html</welcome-file>
>     <welcome-file>index.htm</welcome-file>
>     <welcome-file>index.jsp</welcome-file>
>     <welcome-file>default.html</welcome-file>
>     <welcome-file>default.htm</welcome-file>
>     <welcome-file>default.jsp</welcome-file>
>   </welcome-file-list>
> </web-app>
>
>
>
> On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:
>
> Can you attach your sample here for a check?
>
> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com> wrote:
>
>> I have my SampleApi (interface) exported it.  I don't believe I'm suppose
>> to export the implementation (SampleServer) and web bundle(Sample Web).
>>  But, i just tried exporting them both just to see if it will work and I'm
>> still getting the same error.  I'm somewhat following the CounterApp
>> example.  My web bundle is pretty much the same as the CounterWebBundle
>> (same required import packages and no exports).
>>
>>
>> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>>
>> Have you exported your application classes in Export-Package of
>> MANIFEST.MF?
>>
>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
>>
>>> Thanks, Ivan.
>>>
>>> I added the javax.naming to the import and now getting this error:
>>>
>>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>>> application for bundle sample-web
>>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>>> class
>>>  at
>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>> ServletSecurityAnnotationMergeHandler.java:79)
>>>  at
>>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(
>>> MergeHelper.java:418)
>>>  at
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(
>>> AbstractWebModuleBuilder.java:493)
>>>  at
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(
>>> AbstractWebModuleBuilder.java:436)
>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>> WebApplication.java:213)
>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>> WebApplication.java:125)
>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>> Executors.java:441)
>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>> ThreadPoolExecutor.java:886)
>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>> ThreadPoolExecutor.java:908)
>>>  at java.lang.Thread.run(Thread.java:680)
>>> Caused by: java.lang.ClassNotFoundException:
>>> com.sample.client.web.SampleServlet
>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(
>>> BundleLoader.java:513)
>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>> BundleLoader.java:429)
>>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>>> BundleLoader.java:417)
>>>  at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(
>>> GeronimoClassLoader.java:85)
>>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>>  at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(
>>> BundleLoader.java:345)
>>>  at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(
>>> BundleHost.java:229)
>>>  at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(
>>> AbstractBundle.java:1207)
>>>  at
>>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>>> ServletSecurityAnnotationMergeHandler.java:52)
>>>  ... 11 more
>>>
>>>
>>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>>
>>> From the log files, it seems that javax.naming should be added in the
>>> import-package list for the wab ?
>>>
>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>>
>>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>>
>>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>>> application for bundle sample-web
>>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>>> com.sample.client.web.SampleServlet
>>>>  due to:javax/naming/NamingException
>>>>  in classLoader:
>>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
>>>> AbstractWebModuleBuilder.java:663)
>>>>  at
>>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
>>>> AbstractWebModuleBuilder.java:698)
>>>>  at
>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
>>>> TomcatModuleBuilder.java:483)
>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>>> WebApplication.java:218)
>>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>>> WebApplication.java:125)
>>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>>> Executors.java:441)
>>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>>> ThreadPoolExecutor.java:886)
>>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>> ThreadPoolExecutor.java:908)
>>>>  at java.lang.Thread.run(Thread.java:680)
>>>>
>>>> Any help is appreciated.
>>>>
>>>> Michael
>>>>
>>>
>>>
>>>
>>> --
>>> Ivan
>>>
>>>
>>>
>>
>>
>> --
>> Thanks!
>>
>> Regards, Forrest
>>
>>
>>
>
>
> --
> Thanks!
>
> Regards, Forrest
>
>
>


-- 
Thanks!

Regards, Forrest

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
Thanks for helping me.  I'm new to OSGi.  Here are my configs and code.

SampleApp
APPLICATION.MF

Application-Name: sample-app
Application-SymbolicName: sample-app
Application-ManifestVersion: 1.0
Application-Version: 1.0.0.qualifier
Application-Content: sample-api;version="1.0.0",
 sample-server;version="1.0.0",
 sample-web;version="1.0.0"
Manifest-Version: 1.0

SampleApi

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: sample-api
Bundle-SymbolicName: sample-api
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: com.sample.api


package com.sample.api;

public interface SampleService {
	public String sayHello(String name);
}


SampleServer

Manifest-Version: 1.0
Bundle-Blueprint: OSGI-INF/blueprint/*.xml
Bundle-Version: 1.0.0.qualifier
Bundle-Name: sample-server
Bundle-ManifestVersion: 2
Import-Package: com.sample.api
Bundle-SymbolicName: sample-server
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: com.sample.server

Source:
package com.sample.server;

import com.sample.api.SampleService;

public class SampleServiceImpl implements SampleService {

	public String sayHello(String name) {
		// TODO Auto-generated method stub
		return "Hello "+name;
	}

}

**** Blueprint.xml

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
    <bean id="serviceBean" class="com.sample.server.SampleServiceImpl"/>

    <service ref="serviceBean" interface="com.sample.api.SampleService"/>

</blueprint>

SampleWeb

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: sample-web
Bundle-SymbolicName: sample-web
Bundle-Version: 1.0.0.qualifier
Bundle-ClassPath: WEB-INF/classes
Web-ContextPath: /sample-web
Import-Package: com.sample.api,
 javax.naming,
 javax.servlet;version="2.5",
 javax.servlet.http;version="2.5"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: com.sample.client.web


package com.sample.client.web;

import java.io.IOException;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sample.api.SampleService;

/**
 * Servlet implementation class SampleServlet
 */
public class SampleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SampleServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		SampleService sample = null;
		try {
			InitialContext ic = new InitialContext();
			sample = (SampleService) ic.lookup("osgi:service/" + SampleService.class.getName());
			response.getOutputStream().println("**** " + sample.sayHello("Sample Service"));
		}
		catch (NamingException e) {
			e.printStackTrace(System.out);
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}

**** web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>sample-web</display-name>
  <servlet>
		<display-name>SampleServlet</display-name>
		<servlet-name>SampleServlet</servlet-name>
		<servlet-class>com.sample.client.web.SampleServlet</servlet-class>
  </servlet>
  <servlet-mapping>
		<servlet-name>SampleServlet</servlet-name>
		<url-pattern>/sample</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>



On Apr 18, 2012, at 8:44 PM, Forrest Xia wrote:

> Can you attach your sample here for a check?
> 
> On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com> wrote:
> I have my SampleApi (interface) exported it.  I don't believe I'm suppose to export the implementation (SampleServer) and web bundle(Sample Web).  But, i just tried exporting them both just to see if it will work and I'm still getting the same error.  I'm somewhat following the CounterApp example.  My web bundle is pretty much the same as the CounterWebBundle (same required import packages and no exports).
> 
> 
> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
> 
>> Have you exported your application classes in Export-Package of MANIFEST.MF?
>> 
>> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
>> Thanks, Ivan.
>> 
>> I added the javax.naming to the import and now getting this error:
>> 
>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web application for bundle sample-web
>> org.apache.geronimo.common.DeploymentException: Fail to load servlet class
>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
>> 	at org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> 	at java.lang.Thread.run(Thread.java:680)
>> Caused by: java.lang.ClassNotFoundException: com.sample.client.web.SampleServlet
>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>> 	at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>> 	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>> 	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
>> 	... 11 more
>> 
>> 
>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>> 
>>> From the log files, it seems that javax.naming should be added in the import-package list for the wab ?
>>> 
>>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>> I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 
>>> 
>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
>>> java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
>>>  due to:javax/naming/NamingException
>>>  in classLoader: 
>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>> 	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>>> 	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>> 	at java.lang.Thread.run(Thread.java:680)
>>> 
>>> Any help is appreciated.
>>> 
>>> Michael
>>> 
>>> 
>>> 
>>> -- 
>>> Ivan
>> 
>> 
>> 
>> 
>> -- 
>> Thanks!
>> 
>> Regards, Forrest
>> 
> 
> 
> 
> 
> -- 
> Thanks!
> 
> Regards, Forrest
> 


Re: Geronino 3 beta Servlet issue

Posted by Forrest Xia <fo...@gmail.com>.
Can you attach your sample here for a check?

On Thu, Apr 19, 2012 at 12:43 AM, Michael Chau <mt...@yahoo.com> wrote:

> I have my SampleApi (interface) exported it.  I don't believe I'm suppose
> to export the implementation (SampleServer) and web bundle(Sample Web).
>  But, i just tried exporting them both just to see if it will work and I'm
> still getting the same error.  I'm somewhat following the CounterApp
> example.  My web bundle is pretty much the same as the CounterWebBundle
> (same required import packages and no exports).
>
>
> On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:
>
> Have you exported your application classes in Export-Package of
> MANIFEST.MF?
>
> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
>
>> Thanks, Ivan.
>>
>> I added the javax.naming to the import and now getting this error:
>>
>> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
>> application for bundle sample-web
>> org.apache.geronimo.common.DeploymentException: Fail to load servlet
>> class
>>  at
>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>> ServletSecurityAnnotationMergeHandler.java:79)
>>  at
>> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(
>> MergeHelper.java:418)
>>  at
>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(
>> AbstractWebModuleBuilder.java:493)
>>  at
>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(
>> AbstractWebModuleBuilder.java:436)
>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>> WebApplication.java:213)
>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>> WebApplication.java:125)
>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>> Executors.java:441)
>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>> ThreadPoolExecutor.java:886)
>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:908)
>>  at java.lang.Thread.run(Thread.java:680)
>> Caused by: java.lang.ClassNotFoundException:
>> com.sample.client.web.SampleServlet
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(
>> BundleLoader.java:513)
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>> BundleLoader.java:429)
>>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
>> BundleLoader.java:417)
>>  at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(
>> GeronimoClassLoader.java:85)
>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>  at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(
>> BundleLoader.java:345)
>>  at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(
>> BundleHost.java:229)
>>  at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(
>> AbstractBundle.java:1207)
>>  at
>> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
>> ServletSecurityAnnotationMergeHandler.java:52)
>>  ... 11 more
>>
>>
>> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>>
>> From the log files, it seems that javax.naming should be added in the
>> import-package list for the wab ?
>>
>> 2012/4/18 Michael Chau <mc...@gmail.com>
>>
>>> I've created a SampleApi(interface), SampleServer(implementation) and
>>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>>
>>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>>> application for bundle sample-web
>>> java.lang.NoClassDefFoundError: Could not fully load class:
>>> com.sample.client.web.SampleServlet
>>>  due to:javax/naming/NamingException
>>>  in classLoader:
>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>>  at
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
>>> AbstractWebModuleBuilder.java:663)
>>>  at
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
>>> AbstractWebModuleBuilder.java:698)
>>>  at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
>>> TomcatModuleBuilder.java:483)
>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>>> WebApplication.java:218)
>>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>>> WebApplication.java:125)
>>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>>> Executors.java:441)
>>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>>> ThreadPoolExecutor.java:886)
>>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>> ThreadPoolExecutor.java:908)
>>>  at java.lang.Thread.run(Thread.java:680)
>>>
>>> Any help is appreciated.
>>>
>>> Michael
>>>
>>
>>
>>
>> --
>> Ivan
>>
>>
>>
>
>
> --
> Thanks!
>
> Regards, Forrest
>
>
>


-- 
Thanks!

Regards, Forrest

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
I have my SampleApi (interface) exported it.  I don't believe I'm suppose to export the implementation (SampleServer) and web bundle(Sample Web).  But, i just tried exporting them both just to see if it will work and I'm still getting the same error.  I'm somewhat following the CounterApp example.  My web bundle is pretty much the same as the CounterWebBundle (same required import packages and no exports).


On Apr 18, 2012, at 12:55 AM, Forrest Xia wrote:

> Have you exported your application classes in Export-Package of MANIFEST.MF?
> 
> On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:
> Thanks, Ivan.
> 
> I added the javax.naming to the import and now getting this error:
> 
> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web application for bundle sample-web
> org.apache.geronimo.common.DeploymentException: Fail to load servlet class
> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
> 	at org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassNotFoundException: com.sample.client.web.SampleServlet
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
> 	at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
> 	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
> 	... 11 more
> 
> 
> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
> 
>> From the log files, it seems that javax.naming should be added in the import-package list for the wab ?
>> 
>> 2012/4/18 Michael Chau <mc...@gmail.com>
>> I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 
>> 
>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
>> java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
>>  due to:javax/naming/NamingException
>>  in classLoader: 
>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>> 	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
>> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
>> 	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
>> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
>> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> 	at java.lang.Thread.run(Thread.java:680)
>> 
>> Any help is appreciated.
>> 
>> Michael
>> 
>> 
>> 
>> -- 
>> Ivan
> 
> 
> 
> 
> -- 
> Thanks!
> 
> Regards, Forrest
> 


Re: Geronino 3 beta Servlet issue

Posted by Forrest Xia <fo...@gmail.com>.
Have you exported your application classes in Export-Package of MANIFEST.MF?

On Wed, Apr 18, 2012 at 3:42 AM, Michael Chau <mt...@yahoo.com> wrote:

> Thanks, Ivan.
>
> I added the javax.naming to the import and now getting this error:
>
> 2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web
> application for bundle sample-web
> org.apache.geronimo.common.DeploymentException: Fail to load servlet class
>  at
> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
> ServletSecurityAnnotationMergeHandler.java:79)
>  at
> org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(
> MergeHelper.java:418)
>  at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(
> AbstractWebModuleBuilder.java:493)
>  at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(
> AbstractWebModuleBuilder.java:436)
>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
> WebApplication.java:213)
>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
> WebApplication.java:125)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441
> )
>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> ThreadPoolExecutor.java:886)
>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:908)
>  at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassNotFoundException:
> com.sample.client.web.SampleServlet
>  at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(
> BundleLoader.java:513)
>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
> BundleLoader.java:429)
>  at org.eclipse.osgi.internal.loader.BundleLoader.findClass(
> BundleLoader.java:417)
>  at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(
> GeronimoClassLoader.java:85)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>  at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(
> BundleLoader.java:345)
>  at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(
> BundleHost.java:229)
>  at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(
> AbstractBundle.java:1207)
>  at
> org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(
> ServletSecurityAnnotationMergeHandler.java:52)
>  ... 11 more
>
>
> On Apr 17, 2012, at 11:09 PM, Ivan wrote:
>
> From the log files, it seems that javax.naming should be added in the
> import-package list for the wab ?
>
> 2012/4/18 Michael Chau <mc...@gmail.com>
>
>> I've created a SampleApi(interface), SampleServer(implementation) and
>> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
>> Aries container and it was fine.  I tried to run it in Geronimo and got
>>
>> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
>> application for bundle sample-web
>> java.lang.NoClassDefFoundError: Could not fully load class:
>> com.sample.client.web.SampleServlet
>>  due to:javax/naming/NamingException
>>  in classLoader:
>> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
>> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
>>  at
>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
>> AbstractWebModuleBuilder.java:663)
>>  at
>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
>> AbstractWebModuleBuilder.java:698)
>>  at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
>> TomcatModuleBuilder.java:483)
>>  at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
>> WebApplication.java:218)
>>  at org.apache.geronimo.osgi.web.extender.WebApplication.run(
>> WebApplication.java:125)
>>  at java.util.concurrent.Executors$RunnableAdapter.call(
>> Executors.java:441)
>>  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>> ThreadPoolExecutor.java:886)
>>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:908)
>>  at java.lang.Thread.run(Thread.java:680)
>>
>> Any help is appreciated.
>>
>> Michael
>>
>
>
>
> --
> Ivan
>
>
>


-- 
Thanks!

Regards, Forrest

Re: Geronino 3 beta Servlet issue

Posted by Michael Chau <mt...@yahoo.com>.
Thanks, Ivan.

I added the javax.naming to the import and now getting this error:

2012-04-18 00:40:53,484 ERROR [WebApplication] Unable to start web application for bundle sample-web
org.apache.geronimo.common.DeploymentException: Fail to load servlet class
	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:79)
	at org.apache.geronimo.web25.deployment.merge.MergeHelper.processWebFragmentsAndAnnotations(MergeHelper.java:418)
	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:493)
	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:213)
	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: com.sample.client.web.SampleServlet
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
	at org.apache.geronimo.web25.deployment.merge.annotation.ServletSecurityAnnotationMergeHandler.postProcessWebXmlElement(ServletSecurityAnnotationMergeHandler.java:52)
	... 11 more


On Apr 17, 2012, at 11:09 PM, Ivan wrote:

> From the log files, it seems that javax.naming should be added in the import-package list for the wab ?
> 
> 2012/4/18 Michael Chau <mc...@gmail.com>
> I've created a SampleApi(interface), SampleServer(implementation) and SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache Aries container and it was fine.  I tried to run it in Geronimo and got 
> 
> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web application for bundle sample-web
> java.lang.NoClassDefFoundError: Could not fully load class: com.sample.client.web.SampleServlet
>  due to:javax/naming/NamingException
>  in classLoader: 
> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
> 	at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:663)
> 	at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698)
> 	at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:483)
> 	at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(WebApplication.java:218)
> 	at org.apache.geronimo.osgi.web.extender.WebApplication.run(WebApplication.java:125)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:680)
> 
> Any help is appreciated.
> 
> Michael
> 
> 
> 
> -- 
> Ivan


Re: Geronino 3 beta Servlet issue

Posted by Ivan <xh...@gmail.com>.
>From the log files, it seems that javax.naming should be added in the
import-package list for the wab ?

2012/4/18 Michael Chau <mc...@gmail.com>

> I've created a SampleApi(interface), SampleServer(implementation) and
> SampleWeb(servlet) bundles.  It's using Blueprint.  I ran it in the Apache
> Aries container and it was fine.  I tried to run it in Geronimo and got
>
> 2012-04-17 14:44:52,759 ERROR [WebApplication] Unable to start web
> application for bundle sample-web
> java.lang.NoClassDefFoundError: Could not fully load class:
> com.sample.client.web.SampleServlet
>  due to:javax/naming/NamingException
>  in classLoader:
> org.apache.geronimo.hook.equinox.GeronimoClassLoader@10993991
> at org.apache.xbean.finder.ClassFinder.<init>(ClassFinder.java:136)
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(
> AbstractWebModuleBuilder.java:663)
> at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(
> AbstractWebModuleBuilder.java:698)
> at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(
> TomcatModuleBuilder.java:483)
> at org.apache.geronimo.osgi.web.extender.WebApplication.doRun(
> WebApplication.java:218)
> at org.apache.geronimo.osgi.web.extender.WebApplication.run(
> WebApplication.java:125)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
>
> Any help is appreciated.
>
> Michael
>



-- 
Ivan