我一直在寻找如何使它正常工作的日子,但没有成功。

我有一个侦听端口6789的项目,建立连接后,我需要执行一些特定的操作。为此,我尝试使用listener,以便在建立连接时只要服务器Engine运行。

基本上,移动应用程序将要连接到服务器的实例,一旦建立连接,服务器就需要对用户进行身份验证,然后从电话中接收数据并将其放入数据库中。如果还有另一种方法,请告诉我。我已经看过过滤器,但是那些过滤器需要激活URL路径,而且我也不知道如何使用建立连接时将触发的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,因为它不在服务器本身的启动目录中。

08-04 13:20