You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beehive.apache.org by Robert Read <r....@auckland.ac.nz> on 2009/02/11 09:08:10 UTC
FW: Context param question
Hi all,
I have written a Custom Beehive Control that wraps the J2SSH Java
library for obtaining an SSH connection and SFTP session with a remote
host for the purpose of transferring a file. The new control implements
PGP authentication against the remote server using a public/private
key-pair.
This works fine between my desktop and an in-house remote host when the
values for the host, port #, user, path to the keyfile, passphrase etc.
are hard-coded.
I have parameterised these values so that the control can be configured
externally and I am attempting to use the
http://beehive.apache.org/docs/1.0.1/controls/apidocs/javadoc/org/apache
/beehive/controls/runtime/servlet/ServletBeanContext.html
<http://beehive.apache.org/docs/1.0.1/controls/apidocs/javadoc/org/apach
e/beehive/controls/runtime/servlet/ServletBeanContext.html> to gain a
reference to the ServletContext and get the values for the parameters
from context-param entries in the web.xml config file by calling
getInitParameter(String name) on the ServletContext.
The Beehive documentation states that defining a reference in the
Control implementation class and annotating it @Context will suffice for
its initialisation, but I get the following stack trace:
Exception in sendFile
org.apache.beehive.controls.api.ControlException: Control initialization
failure[org.apache.beehive.controls.api.ControlException: Contextual
service org.apache.beehive.controls.runtime.servlet.ServletBeanContext
is not available]
Caused by: org.apache.beehive.controls.api.ControlException: Contextual
service org.apache.beehive.controls.runtime.servlet.ServletBeanContext
is not available
... 40 more
at
org.apache.beehive.controls.runtime.bean.ControlBean.ensureControl(Contr
olBean.java:325)
at controls.SftpBean.sendFile(SftpBean.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.bea.wli.knex.runtime.jcs.container.JcsProxy.invokeBeehiveControl(Jcs
Proxy.java:666)
at
com.bea.wli.knex.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:433
)
at controls.Sftp.sendFile(Unknown Source)
at processes.UoaSerkoUserExtract.sftpPut1(UoaSerkoUserExtract.jws:122)
I attempt to call the ServletBeanContext.getServletContext() method from
the onAcquire() lifecycle method of my control. I also have a
ResourceContext associated with the onAcquire() method via an
@EventHandler annotation.
Any ideas why the ServletBeanContext is not available and what I could
do to ensure it is?
Cheers,
Robert
Robert Read,
Analyst Programmer,
ITS Group Applications,
The University of Auckland.
Ph +64 9 923 2475
Ext 82475
Email r.read@auckland.ac.nz
Web www.auckland.ac.nz