- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在我的 Jersey 2 网络应用程序启动时初始化 StanfordCoreNLP。我发现,ServletContextListener 是实现它的方法,但我在 jersey 2 中没有 ServletContextListener,对吧?
那么我如何在我的 jersey 2 webapp 启动时加载这段代码:
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
编辑
网络.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>com.crawler.c_api.rest.ApplicationResource</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.crawler.c_api</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>com.crawler.c_api.provider.ResponseCorsFilter;org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>com.crawler.c_api.rest.ApplicationResource</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.crawler</groupId>
<artifactId>C_API</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>C_API</name>
<build>
<finalName>C_API</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
<!-- artifactId>jersey-container-servlet</artifactId -->
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java6</artifactId>
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.mindrot</groupId>
<artifactId>jbcrypt</artifactId>
<version>0.3m</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.syncthemall</groupId>
<artifactId>boilerpipe</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.5.2</version>
<classifier>models</classifier>
</dependency>
</dependencies>
<properties>
<jersey.version>2.19</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
应用资源
package com.crawler.c_api.rest;
import com.crawler.c_api.provider.ResponseCorsFilter;
import java.util.logging.Logger;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.ServerProperties;
public class ApplicationResource extends ResourceConfig {
private static final Logger LOGGER = null;
public ApplicationResource() {
System.out.println("iansdiansdasdasd");
// Register resources and providers using package-scanning.
packages("main.java.com.crawler.c_api");
// Register my custom provider - not needed if it's in my.package.
register(ResponseCorsFilter.class);
// Register an instance of LoggingFilter.
register(new LoggingFilter(LOGGER, true));
// Enable Tracing support.
property(ServerProperties.TRACING, "ALL");
}
}
最佳答案
ServletContextListener
如果是 Servlet API 的一部分。所以你可以添加
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
但这可能不是必需的。除了 web.xml 之外,还有更多方法可以部署 Jersey 应用程序。您可以扩展 ResourceConfig
.这将允许您完全无 xml,即使您愿意。您在 web.xml 中配置的所有内容,大部分都可以在 ResourceConfig
中配置。
您甚至可以同时使用 web.xml 和 ResourceConfig
。例如
public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("org.foo.rest;org.bar.rest");
// do any other initialization here
}
}
<web-app>
<servlet>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
</servlet>
...
<servlet-mapping>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
<url-pattern>/resources</url-pattern>
</servlet-mapping>
...
</web-app>
查看其他部署选项 here .有几种不同的方法来部署 Jersey 应用程序。
关于java - Jersey 2 替代 ServletContextListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32415092/
我使用 Eclipse Maven 插件创建一个 Java EE 7 项目。我的问题是,当我运行应用程序时,不会调用实现 SerlvetContextListener 的类。是什么导致了这个问题? @
我在 Web 应用程序启动阶段 (contextInitialized()) 读取了一个属性文件,并开始考虑如何使这些设置对 servlet“可见”。我是否需要循环遍历键并将每个键添加到上下文中,就像
有什么原因不能在 Java ServletContextListener 中创建变量并且它的值设置和获取与其他任何变量一样。我所拥有的是 SCL 中的 ArrayList 和另一个类中的方法经常使用
实际上,我需要执行一个方法,每次机器重启都需要几个小时才能完成。我已经在 apache tomcat 上部署了我的 Web 应用程序,并且启用了 Apache tomcat 的自动启动。为此,我在 S
我正在研究servlet,我从书中做了一个例子,但我得到了nullpointerexception。 这是我的类(class): package chala; public class Dog { p
我正在尝试在部署我的 war 文件时初始化一个流对象。 我编写了一个实现 ServletContextListener 的 Initializer 类,并向我的 web.xml 添加了一个监听器类标记
如果我有多个 ServletContextListener 并且其中一些在部署描述符中声明而其他带有注释 (@WebListener),如何定义由于应用程序初始化而执行的 ServletContext
我正在尝试使用 servletContainerInitializer 注册一个 servlet,但它似乎不起作用,也许这是我的代码(请查看它),但我开始想知道 ServletContainerIni
我正在阅读有关“Servlet 3.0 中的异步处理支持”的专家(?)教程(http://www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.h
我有一个 ServletContextListener 来初始化我的数据库。我已将其添加到我的 web.xml 中: util.MySessionListener 当我启动服务器时,一切都很
我需要有一个可通过 JSP 应用程序中的应用程序使用的对象。该对象必须实例化一次,然后在应用程序的生命周期中应使用同一个实例。 我只是 jsp 的初学者,所以我看到了两种实现此目的的方法: 我有一个
ApplicationListener 和 ServletContextListener 有什么区别?你什么时候使用它们? implements ApplicationListener impleme
我已经使用 JAX-WS 开发了一个 Web 服务,并且在 web.xml 中我注册了这个 servlet 上下文监听器。 com.sun.xml.ws.transport.http.ser
我正在创建一个 war 文件 (progressReporter.war) 并将其部署在 Jetty7.2.2.v20101205 上。我在 contextInitialized 方法上有一个系统输出
我制作了基本的 Web 应用程序,其中我采用了一个扩展 TimerTask 的 POJO 类和一个实现 ServletContextListener 的 servlet 类。现在我关心的是我想在控制台
我有一个处理特定传入请求的 servlet。我们将其称为“UpdateUserStats”。我希望调用速度快,但我还需要请求来完成一项相当昂贵的任务。我认为,如果我让 UpdateUserStats
我们在重新加载上下文时遇到多个内存泄漏(在 catalina.out 中发现)。 为了清理这些线程,我创建了 ServletContextListener 的实现。 创建上下文时成功调用了 conte
我想运行一些简单的后台进程计算,但我似乎无法弄清楚。无论我做什么,它都会阻塞。 public class WorkThreadManagerContextLoaderListener implemen
我有一个 InitApp 类 @Component public class InitApp implements ServletContextListener { @Autowired Config
我知道什么是 ServletContextListener 以及如何在 web.xml 中实现/注册它。 但问题如下。在 Web 应用程序开始时,会为每个 javaVM 创建一个监听器实例。然后调用其
我是一名优秀的程序员,十分优秀!