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 <forres...@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 <mtqc2...@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 <mtqc2...@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 <mtqc2...@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 <mtqc2...@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 <mtqc2...@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 <mcha...@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

Reply via email to