[JBoss Portal] - NullPointer: Setting portlet instance preferences via Instan
by IronMan77
Hi using this development setup:
| * Version: jboss-portal-2.6.1.GA
| * Download Version
| * JBoss AS Version: 4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)]
| * Database: Mysql 5.0.51a-community-nt
| * JDBC Connector and Version: mysql-connector-java-5.0.5-bin.jar
| * OS Platform: Windows XP 32-Bit
|
| I have injected the InstanceContainer and set transaction support via jboss-portlet.xml:
|
|
| | <service>
| | <service-name>InstanceContainer</service-name>
| | <service-class>org.jboss.portal.core.model.instance.InstanceContainer</service-class>
| | <service-ref>:container=Instance</service-ref>
| | </service>
|
| and
|
| <trans-attribute>Required</trans-attribute>
Reading from the portlet instnaces does work, writing to the portlet preferences creates a nullpointer, using this example code:
| //Get the instance container
| InstanceContainer instanceContainer = (InstanceContainer) this.getPortletRequest().getPortletSession().getPortletContext().getAttribute("InstanceContainer");
| InstanceDefinition id = instanceContainer.getDefinition("startPortletInstance");
|
| // This does work!
| PropertyMap pmap = id.getProperties();
| String uuid = ((StringValue) pmap.get("uuid")).toString();
|
| List tmp = new ArrayList();
| if (pmap.containsKey("uuid")) {
| PropertyChange change = PropertyChange.newUpdate("uuid", new StringValue(documentId));
| tmp.add(change);
| }
| PropertyChange[] changes = (PropertyChange[]) tmp.toArray(new PropertyChange[tmp.size()]);
| //This doesn't work
| id.setProperties(changes);
|
I have debugged the setProperties() method for my portlet und the admin portlet and found the problematic section:
org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager
The following code line leads to the nullpointer:
context.entries.clear();
The problem seems to be, that the loaded (hibernate?) PersistentPortletState object is not set up correctly, most properties are empty. I have compared this to the admin-core portlet - there is the object loaded correctly.
Some questions:
1. Am i gettin the InstanceCotainer correctly:
InstanceContainer instanceContainer = (InstanceContainer) this.getPortletRequest().getPortletSession().getPortletContext().getAttribute("InstanceContainer");
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4133124#4133124
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4133124
17 years, 2 months
[Beginners Corner] - Re: JBoss installing Problem
by prodv
Hi,
yes, i deployed the datasource. This is the content of the datasource.
my db2-service.xml
<?xml version="1.0" encoding="UTF-8"?>
| <!-- ==================================================================== -->
| <!-- ConnectionManager setup for default IBM DB2 -->
| <!-- Build jmx-api (build/build.sh all) and view for config documentation -->
| <!-- ==================================================================== -->
| <server>
| <!-- Database Connection for ISIP Database -->
| <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=DB2ISIPDS">
| <!-- Include a login module configuration named DB2DbRealm.
| Update your login-conf.xml, here is an example for a
| ConfiguredIdentityLoginModule:
|
| <application-policy name = "DB2DbRealm">
| <authentication>
| <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
| <module-option name = "principal">yourprincipal</module-option>
| <module-option name = "userName">yourusername</module-option>
| <module-option name = "password">yourpassword</module-option>
| <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=DB2ISIPDS</module-option>
| </login-module>
| </authentication>
| </application-policy>
|
| NOTE: the application-policy name attribute must match SecurityDomainJndiName, and the
| module-option name = "managedConnectionFactoryName"
| must match the object name of the ConnectionManager you are configuring here.
| -->
| <!--uncomment out this line if you are using the DB2DbRealm above
| <attribute name="SecurityDomainJndiName">DB2DbRealm</attribute>
| -->
| <depends optional-attribute-name="ManagedConnectionFactoryName">
| <!--embedded mbean-->
| <mbean code="org.jboss.resource.connectionmanager.RARDeployment" name="jboss.jca:service=LocalTxDS,name=DB2ISIPDS">
| <attribute name="JndiName">DB2ISIPDS</attribute>
| <attribute name="ManagedConnectionFactoryProperties">
| <properties>
| <config-property name="ConnectionURL" type="java.lang.String">jdbc:db2:isip2</config-property>
| <config-property name="DriverClass" type="java.lang.String">COM.ibm.db2.jdbc.app.DB2Driver</config-property>
| <!--set these only if you want only default logins, not through JAAS -->
| <config-property name="UserName" type="java.lang.String">my db-user</config-property>
| <config-property name="Password" type="java.lang.String">my db-user-pw</config-property>
| </properties>
| </attribute>
| <!--Below here are advanced properties -->
| <!--hack-->
| <depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
| </mbean>
| </depends>
| <depends optional-attribute-name="ManagedConnectionPool">
| <!--embedded mbean-->
| <mbean code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool" name="jboss.jca:service=LocalTxPool,name=DB2ISIPDS">
| <attribute name="MinSize">0</attribute>
| <attribute name="MaxSize">50</attribute>
| <attribute name="BlockingTimeoutMillis">5000</attribute>
| <attribute name="IdleTimeoutMinutes">15</attribute>
| <!--
| criteria indicates if Subject (from security domain) or app supplied
| parameters (such as from getConnection(user, pw)) are used to distinguish
| connections in the pool. Choices are
| ByContainerAndApplication (use both),
| ByContainer (use Subject),
| ByApplication (use app supplied params only),
| ByNothing (all connections are equivalent, usually if adapter supports
| reauthentication)-->
| <attribute name="Criteria">ByContainer</attribute>
| </mbean>
| </depends>
| <depends optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedConnectionManager</depends>
| <depends optional-attribute-name="JaasSecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
| <attribute name="TransactionManager">java:/TransactionManager</attribute>
| <!--make the rar deploy! hack till better deployment-->
| <depends>jboss.jca:service=RARDeployer</depends>
| </mbean>
|
|
| <!-- Database Connection for PSM Database -->
| <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=DB2PSMDS">
| <!-- Include a login module configuration named DB2DbRealm.
| Update your login-conf.xml, here is an example for a
| ConfiguredIdentityLoginModule:
|
| <application-policy name = "DB2DbRealm">
| <authentication>
| <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
| <module-option name = "principal">yourprincipal</module-option>
| <module-option name = "userName">yourusername</module-option>
| <module-option name = "password">yourpassword</module-option>
| <module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=DB2PSMDS</module-option>
| </login-module>
| </authentication>
| </application-policy>
|
| NOTE: the application-policy name attribute must match SecurityDomainJndiName, and the
| module-option name = "managedConnectionFactoryName"
| must match the object name of the ConnectionManager you are configuring here.
| -->
| <!--uncomment out this line if you are using the DB2DbRealm above
| <attribute name="SecurityDomainJndiName">DB2DbRealm</attribute>
| -->
| <depends optional-attribute-name="ManagedConnectionFactoryName">
| <!--embedded mbean-->
| <mbean code="org.jboss.resource.connectionmanager.RARDeployment" name="jboss.jca:service=LocalTxDS,name=DB2PSMDS">
| <attribute name="JndiName">DB2PSMDS</attribute>
| <attribute name="ManagedConnectionFactoryProperties">
| <properties>
| <config-property name="ConnectionURL" type="java.lang.String">jdbc:db2:psm</config-property>
| <config-property name="DriverClass" type="java.lang.String">COM.ibm.db2.jdbc.app.DB2Driver</config-property>
| <!--set these only if you want only default logins, not through JAAS -->
| <config-property name="UserName" type="java.lang.String">db2admin</config-property>
| <config-property name="Password" type="java.lang.String">db2admin</config-property>
| </properties>
| </attribute>
| <!--Below here are advanced properties -->
| <!--hack-->
| <depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
| </mbean>
| </depends>
| <depends optional-attribute-name="ManagedConnectionPool">
| <!--embedded mbean-->
| <mbean code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool" name="jboss.jca:service=LocalTxPool,name=DB2PSMDS">
| <attribute name="MinSize">0</attribute>
| <attribute name="MaxSize">50</attribute>
| <attribute name="BlockingTimeoutMillis">5000</attribute>
| <attribute name="IdleTimeoutMinutes">15</attribute>
| <!--
| criteria indicates if Subject (from security domain) or app supplied
| parameters (such as from getConnection(user, pw)) are used to distinguish
| connections in the pool. Choices are
| ByContainerAndApplication (use both),
| ByContainer (use Subject),
| ByApplication (use app supplied params only),
| ByNothing (all connections are equivalent, usually if adapter supports
| reauthentication)-->
| <attribute name="Criteria">ByContainer</attribute>
| </mbean>
| </depends>
| <depends optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedConnectionManager</depends>
| <depends optional-attribute-name="JaasSecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
| <attribute name="TransactionManager">java:/TransactionManager</attribute>
| <!--make the rar deploy! hack till better deployment-->
| <depends>jboss.jca:service=RARDeployer</depends>
| </mbean>
| </server>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4133119#4133119
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4133119
17 years, 2 months
[JCA/JBoss] - Re: Oracle DS
by Artec
Hi vickyk, and thanks for your answer.
Ok for the first question !
For the second instead i attach you the part of the stacktrace above the error that i've past yesterday
2008-02-29 00:00:36,823 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Starting
2008-02-29 00:00:36,835 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Created securityMgr=org.jboss.security.
plugins.JaasSecurityManager@196bac4
2008-02-29 00:00:36,836 INFO [org.jboss.security.plugins.JaasSecurityManagerService] setCachePolicy, c=org.jboss.util.TimedC
achePolicy@bfd10a
2008-02-29 00:00:36,836 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Added HsqlDbRealm, org.jboss.security.p
lugins.SecurityDomainContext@1352367 to map
2008-02-29 00:00:36,843 INFO [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.DefaultDS] Bound connectio
n factory for resource adapter for ConnectionManager 'jboss.jca:service=LocalTxCM,name=DefaultDS to JNDI name 'java:/DefaultD
S'
2008-02-29 00:00:36,843 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started
2008-02-29 00:00:36,843 INFO [org.jboss.mq.pm.jdbc2.PersistenceManager] Starting
...and so, the error is in the defaultds,right ?? and not in my oracle-ds ??
I don't use hypersonic !
Thanks
Davide
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4133114#4133114
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4133114
17 years, 2 months