[EMAIL PROTECTED] escribió:
> Hello,
> 
> My question is very basic... but i am a bit confused with
> the DB persistence setup. Actually I am trying to plug the
> DB persistence for my WSRP4J producer but i did not find any
> documentation.
> 
> Does somedy know where i could find some links or a posts in
> the mailing list which describes the way to enable DB
> persistence. Unfortunately, this time google does not help
> me very much :0((
> 
> If there is no documentation, if somedy who has already ue
> the DB layer can give me some information. By this way, i
> will be able to know where to start.
> 
> Basically, i have done the following steps :
>  -  i have the deployed the test portlet on the
> wsrp4j-producer using Xml file.
>   - i have started my hsqldb database.
> 
> I have seen that i have to add a filter to the portlet.xml
> of my test portlet ... something like :
>  <portlet>
>         <portlet-name>WSRP4JTestPortlet</portlet-name>
> ...
>        
> <portlet-class>org.apache.wsrp4j.testportlet.TestPortlet</portlet-class>
>         <init-param>
>             <name>filter.hibernate</name>
>          
> <value>org.apache.wsrp4j.persistence.db.portlet.HibernateSessionPortletFilter</value>
>         </init-param>
>         <expiration-cache>-1</expiration-cache>
> .....
>     </portlet>
> 
> But i do not know what are the following steps ?!
> 
> Thank you by advance for you help.
> Kind regards,
> Adrien


Hello Adrien, I'm sorry I don't have the time right now for making a
decent update to the README with full info on DB persistence
configuration (you'd be surprised how long it takes to write that
document). That'll have to wait some days.

For now, I'll try to give you some guidance on how to configure it:


1. You'll need some knowledge about Hibernate, so read some tutorials if
you haven't already.



2. As you probably guessed, the db module classes are on
wsrp4j-persistence-db jar. It includes the files needed to configure the
mapping between Java persistent classes and the DB. They are on the jar
(the files *.hbm.xml). Unless you want an specific mapping, you can rely
on the default configurations.



3. For testing you'll need HSQLDB. Download it and run the server on the
localhost.



4. For wsrp4j-producer, you can follow the README.txt instructions. Then
edit the following files:

- $TOMCAT_HOME/conf/Catalina/localhost/wsrp4j-producer.xml
    This is the tomcat dataSource configuration for producer. Edit as
needed.

- $TOMCAT_HOME/webapps/wsrp4j-producer/WEB-INF/server-config.wsdd
    This is the Axis configuration file. You have to enable the
request/response handlers for filtering Hibernate DB-access operations.
Follow the comments on the file.

- $TOMCAT_HOME/webapps/wsrp4j-producer/WEB-INF/web.xml
    Uncomment the Servlet <filter> that is commented out. This enables
the Hibernate operations on the wizard app for deploying new portlets.

- $TOMCAT_HOME/webapps/wsrp4j-producer/WEB-INF/classes/hibernate.cfg.xml
    The main Hibernate configuration file. For the first time, you'll
need to automatically create the db schema. Go almost to the end of the
file and uncomment the following code:
<property name="hbm2ddl.auto">create</property>
    That way, the schema will be created on the db the first time you
run the webapp. After this schema is created for the first time, you
won't need to recreate it again, so you can uncomment it again (in fact,
if you don't uncommnent it you will loose all changes in the db each
time you rerun tomcat).

- $TOMCAT_HOME/webapps/wsrp4j-producer/WEB-INF/classes/wsrp4j-config.xml
    You have to configure the property
wsrp4j.producer.persistent.factory to refer to the db module factory.
Follow the comments on the file.

- $TOMCAT_HOME/webapps/wsrp4j-producer/WEB-INF/sql/wsrp4j-producer.sql
    Before being able to use the producer, you need to insert some
service info data on the db. Start tomcat and when the schema is created
on the db, insert the contents on that file into the db.



5. For wsrp4j-proxyportlet, you can also follow the README.txt and then
edit the following files:
- $TOMCAT_HOME/conf/Catalina/localhost/wsrp4j-proxyportlet.xml
    The same as in wsrp4j-producer.
- $TOMCAT_HOME/webapps/wsrp4j-proxyportlet/WEB-INF/web.xml
- $TOMCAT_HOME/webapps/wsrp4j-proxyportlet/WEB-INF/classes/hibernate.cfg.xml
    The same configuration as in wsrp4j-producer.
- $TOMCAT_HOME/webapps/wsrp4j-proxyportlet/WEB-INF/classes/wsrp4j-config.xml
    The same as in wsrp4j-producer but this time the property is
wsrp4j.proxyportlet.persistent.factory.
- $TOMCAT_HOME/webapps/wsrp4j-proxyportlet/WEB-INF/portlet.xml
    Ok, this is a little bit trickier. **For each** portlet deployed on
portlet.xml you need to enable a filter created for allowing the
portlets to access Hibernate requests. The current proxyportlet includes
a filtering system so any <init-param> created with a <name> in the form
"filter.<id>" will create a filter with identifier <id> for all requests
and responses instantiating the class specified on the <value> tag. I
know this behaviour is weird, but jsr-168 doesn't specify a standard way
of filtering for porltets, some mechanism similar as for servlets. The
new portlet 2.0 spec addresses this issue.
    Just uncomment the filter on all portlets. Remember that if you add
a new portlet, you'll have to add the filter info yourself
(unfortunately, the deploy webapp right now doesn't add this filtering
information).
-
$TOMCAT_HOME/webapps/wsrp4j-proxyportlet/WEB-INF/sql/wsrp4j-proxyportlet.sql
    The same as in wsrp4j-producer, you need the actual data inserted on
the db.


I think that's all. Hope that helps.

Regards.
Diego.

Reply via email to