java - Tomcat 7 生命周期监听器

标签 java tomcat jsf-2

我几天来一直在寻找如何让它发挥作用,但没有成功。

我有一个监听端口 6789 的项目,当建立连接时我需要执行一些特定的操作。为此,我尝试使用 listener这样我的服务器就可以随时Engine在建立连接时运行。

基本上,移动应用程序将连接到服务器的实例,一旦建立连接,服务器就需要对用户进行身份验证,然后从手机接收数据并将其放入数据库中。如果有其他方法可以做到这一点,请告诉我。我查看过过滤器,但它们需要 url 路径来激活,而且我也不知道如何使用 servlet,该 servlet 在建立连接时会触发!

到目前为止,我的 server.xml 中有这个:

<Service name="Catalina">

    <Connector connectionTimeout="20000" port="6789" protocol="HTTP/1.1"
        redirectPort="8443" />

    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    <Engine defaultHost="localhost" name="Catalina">
        <Listener className="Listeners.EngineListener" />

        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase" />
        </Realm>

        <Host appBase="webapps" autoDeploy="true" name="localhost"
            unpackWARs="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve"
                directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log."
                suffix=".txt" />

            <Context docBase="PhoneListener" path="/PhoneListener"
                reloadable="true" source="org.eclipse.jst.jee.server:PhoneListener">
            </Context>
        </Host>
    </Engine>
</Service>

我在 <Listener> 中有文件的完整路径标签。这与我执行许多过滤器(身份验证和 noCache)的方式相同。

实现 LifeCycleListener 的类在这里”

package Listeners;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;

@ManagedBean
@SessionScoped
public class EngineListener implements LifecycleListener 
{

    @Override
    public void lifecycleEvent(LifecycleEvent event)
    {
        // TODO Auto-generated method stub
        System.out.println("The engine listener is working!");
    }

}

bean 声明在这里没有意义,无论有没有 bean 声明,我都会得到相同的结果。

我已经为此工作了几天了。

我已经安装了maven并用它来修复依赖关系。我在新的工作区中创建了新项目,试图修复类路径错误。我尝试从 Majorra JSF 库切换到 MyFaces 库,但遇到了相同的错误。老实说,我对听众一筹莫展。

有什么想法吗?

最佳答案

事实证明我的代码没有错误,但文件放置位置有错误。我已将 PhoneListener 项目导出为 .jar 并将其放入我正在等待连接的服务器的/lib 文件夹中。

服务器找不到我的Listeners.PhoneListener,因为它不在服务器本身的启动目录中。

关于java - Tomcat 7 生命周期监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673822/

相关文章:

jakarta-ee - 在 JSF2 项目中添加 jsf-facelets.jar

JSF 2 : Ajax errors not displayed

java - 我的 Jar 没有创建日志文件,而普通应用程序却创建

tomcat - cobertura 的副作用

jsp - Struts2 - 链接到 JSP 上的外部 URL *不包括*本地上下文路径?

jsf-2 - WELD-000321 当我刷新页面时,找不到要恢复 id 3 的对话

java - 使用 LWJGL 绘制背景 Sprite 有困难

java - 处理程序而不是计时器?

java - 将矩阵和 double 组解析为 la4j 对象

java - 我们如何决定在maven中使用哪个java版本来编译一个版本的库?