Hi Steve,

The reason you are getting the error is because there is not a control
container context available for the JDBC controls to acquire resources
from.

The Beehive distribution includes the ControlFilter servlet filter
which can be used to establish a control context for your servlet and
controls contained within that servlet.

You can find the Java doc for this class at:

http://beehive.apache.org/docs/1.0.2/controls/apidocs/javadoc/org/apache/beehive/controls/runtime/servlet/ControlFilter.html

You'll need to modify you web.xml to include something like:

 <filter>
   <filter-name>ControlFilter</filter-name>
   <filter-class>
      org.apache.beehive.controls.runtime.servlet.ControlFilter
   </filter-class>
 </filter>

 <filter-mapping>
   <filter-name>ControlFilter</filter-name>
   <url-pattern>*/Myservlet*</url-pattern>
 </filter-mapping>

You man also need to include a control context in your instantiate call,

org.apache.beehive.controls.api.bean.Controls.initializeClient( null,
rec, ControlThreadContext.getContext() );


Hope this helps, let me know if still not working.

 - Chad





On 3/25/07, Steven Dalton <[EMAIL PROTECTED]> wrote:
Hi All,



I have a problem I hope someone can help me with:



What I'm trying to do is programmatically create controls which access
system controls ie JDBC



I can create the control and I can also access sub controls (non system)
within the parent which are defined declaratively and they work fine.
The problem arises when I try to access a control that requires a
contextual service. IE JDBC.



Is this even possible?



I've tried this from an extension of the XmlHttpRequestServlet (doPost
method)



The ReceivablesControlImpl is a basic control which references a number
of JDBC controls.  The error is in the method (viewReceivable) that
calls methods on the JDBC  controls.



            ReceivablesControlImpl rec = (ReceivablesControlImpl)
java.beans.Beans.instantiate(


getClass().getClassLoader(),

"controls.receivables. ReceivablesControlImpl");




org.apache.beehive.controls.api.bean.Controls.initializeClient( null,
rec,null );



            Receivable r = rec.viewReceivable(1L);



gives me:



org.apache.beehive.controls.api.ControlException: Control initialization
failure[org.apache.beehive.controls.api.Con

trolException: Contextual service
org.apache.beehive.controls.api.context.ResourceContext is not
available]

        at
org.apache.beehive.controls.runtime.bean.ControlBean.ensureControl(Contr
olBean.java:326)

        at
controls.database.receivables.JdbcReceivablesBean.viewReceivable(JdbcRec
eivablesBean.java:251)

        at
controls.receivables.ReceivablesControlImpl.viewReceivable(ReceivablesCo
ntrolImpl.java:60)



Environment:

Tomcat 5.5

Beehive 1.02



Help would be much appreciated



Thank you,



Steven Dalton




Reply via email to