您能否解释一下如何ServletContext
在我Application
的子类中获取实例?可能吗?我已尝试按照以下代码片段的方式进行操作,但它似乎不起作用-
ctx
未设置:
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
//...
@ApplicationPath("/")
public class MainApplication extends Application {
@Context ServletContext ctx;
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
//...
return classes;
}
}
web.xml:
<web-app ...>
<context-param>
<param-name>environment</param-name>
<param-value>development</param-value>
</context-param>
<filter>
<filter-name>jersey-filter</filter-name>
<filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>my.MainApplication</param-value>
</init-param>
</filter>
...
</web-app>
问题是我需要从中获取上下文参数。如果有其他方法,请给我一个提示,我将不胜感激。
我了解Context
注记可能并非为此目的。实际上,我不需要ServletContext
自己。如果只有我可以从web.xml中获取上下文参数,我将非常高兴。
这是我真正需要的一个例子:
import java.util.HashSet;
import java.util.Set;
import javax.servlet.ServletContext;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
public class MainApplication extends Application {
@Context ServletContext ctx;
@Override
public Set<Object> getSingletons() {
Set<Object> set = new HashSet<Object>();
final String environment = ctx.getInitParameter("environment");
//final String environment = ... get context parameter from web xml
set.add(new AbstractBinder() {
@Override
protected void configure() {
bind(new BaseDataAccess(environment)).to(DataAccess.class);
}
});
//...
return set;
}
}
谢谢。
从Jersey
2.5开始,可以将ServletContext直接注入到构造函数中:https
:
//java.net/jira/browse/JERSEY-2184
public class MyApplication extends ResourceConfig {
public MyApplication(@Context ServletContext servletContext) {
// TODO
}
}
伙计们,我们外包了我们的移动应用程序开发,公司只是给了我一个IPA文件,我必须重新签署,然后上传到iTunes Connect。现在,我只想看到这个应用程序的试飞,我看了一个youtube视频,认为这将是直接的,所以我创建了一个生产证书后,我做了我的应用程序id,然后我创建了一个发行版供应配置文件,并选择应用商店作为我的发行版。我曾经为了改变我在这里找到的教程而进行设计,但是当我使用应用程序加载器
问题内容: 我使用AppFuse创建了一个基本的应用程序外壳,并按照AppFuse教程使用Jax- RS创建了一个简单的RESTful服务。那很好。调用时,将Person对象的集合作为Json格式的字符串返回,并带有正确的数据。 我现在想从Appfuse提供的RESTful服务中访问和对象(以使用需要这些对象的另一个库)。 我 _认为_应该可以通过添加@Context注释来实现,但是,如果我添加@
要获取请求URL,可以在堆栈溢出中找到以下方法。 第一种方法: 第二种方法: 第三种方法: 我不知道在spring boot应用程序中使用哪一个来获取请求URL。 如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?
我做了一个C应用程序,它假设使用Kerberos身份验证来访问HDFS。这个应用程序的webserver也是用C编写的。 我正在尝试使用Kerberos票证在此应用程序中进行透明身份验证。 我使用以下命令对未经授权的用户进行了服务器响应: HTTP/1.1 401未经授权 WWW-认证:协商 浏览器会对标题中的授权字段做出反应,如下所示: 授权:协商Yiecgygkwybbqucoid/jCCA/
问题内容: 我正在尝试在Java Webstart应用程序中加载许多资源。 我最初尝试使用以下命令加载这些文件: 但这没有用-它引发了IllegalArgumentException。进一步的研究表明,该方法不适用于从jar文件访问资源,因此我需要使用以下方法: 但是,当我从Jnlp使用它运行时,得到奇怪的结果。如果我运行以下命令: 在我的IDE中,我得到了对与错(正如我期望的那样)。从jnlp运
我有一个Web应用程序,它对不同端口上的Web服务执行ajax请求(即我的应用程序和服务器位于不同的域中)。 我无法访问服务器 API,因此我无法使用 JSONP。 我正在使用Smiley的HTTP代理Servlet进行解析,因此我的web.xml文件包含以下部分: 不幸的是,我必须在不同的机器(开发、测试、生产)上部署web应用程序,这些机器响应不同的IP地址<是否有一种方法可以在web上动态更