- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Jersey 中使用 hk2 DI,并且我已经阅读了一些有关此事的文本。 (我认为大多数都已经过时了)目前我有一个扩展 ResourceConfig 的类:
public class MyApplication extends ResourceConfig{
public MyApplication(){
register(new AbstractBinder() {
@Override
protected void configure() {
bind(AuthenticationServiceImpl.class).to(AuthenticationService.class);
bind(PropertiesHandlerImpl.class).to(PropertiesHandler.class).in(Singleton.class);
}
});
packages(true, "com.myclass"); }
}
在另一个类中,我尝试注入(inject)这些绑定(bind)类之一:
public class JDBCConnectionStrategy implements DatabaseConnectionStrategy {
private Connection connection;
@Inject
PropertiesHandlerImpl propertiesHandler;
public JDBCConnectionStrategy() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String host = propertiesHandler.getProperty("host");
String userName = propertiesHandler.getProperty("userName");
String password = propertiesHandler.getProperty("password");
//Create a connection
this.connection = DriverManager.getConnection(host, userName, password);
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
e.printStackTrace();
}
}
....
}
如此声明:
@Singleton
@Service
public class PropertiesHandlerImpl implements PropertiesHandler {...}
问题:启动应用程序时出现以下错误
WARNING: The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 2 java.lang.NullPointerException
at com.myclass.JDBCConnectionStrategy.<init>
更新:
我应该补充一点,我将应用程序包添加到了 web.xml 中的扫描路径中:
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.myclass.system.CmisApplication</param-value>
</init-param>
最佳答案
所以我发现了一些错误。
注入(inject)的类型必须是“契约”类型,如bind(Impl).to(Contract)
。 to(Contract)
指定要注入(inject)的“广告”类型。
因此,您不必尝试注入(inject) PropertiesHandlerImpl
,而是使用合约 PropertiesHandler
进行注入(inject)
@Inject
PropertiesHandler handler;
我不明白您如何使用 JDBCConnectionStrategy
。它没有在您的 AbstractBinder
中配置,所以我猜您只是自己实例化它。这行不通。您还需要将其连接到 DI 系统并注入(inject)它。
字段注入(inject)发生在构建之后。因此,除非将服务注入(inject)到构造函数中,否则您无法在构造函数内部使用该服务。
@Inject
public JDBCConnectionStrategy(PropertiesHandler handler) {
}
关于java - 如何在 Jersey 2 中使用 HK2 DI 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41574347/
我要匹配港语的字符串我有以下香港语言的月份和年份 二零一六年六月份 ===>June 2016 二零一五年六月份 ===>June 2015 我已经使用文化信息(zh-HK)来获得月份 但是如何获
我正在构建一个多语言网络应用程序。客户要求香港网站以英文显示。不幸的是,“en-HK”在 asp.net 中不是有效的区域性,因此我尝试使用“zh-hk”来绕过它。但是,这导致日期时间字符串(格式为
下面是Shapeless的LabelledProductTypeClassCompanion中deriveHCons的签名: implicit def deriveHCons[HK <: Symbol
当我尝试创建 CultureInfo 时对于使用 Windows Phone 7 RTM SDK 的 zh-HK,我得到了 System.ArgumentException带有“值不在预期范围内。”。
我对此感到非常困惑。 这是我正在使用的。 请求 2.18.4 python 2.7.14 我正在构建一个爬虫并尝试使用 requests.get() 连接到一个 url。 这是一个从 indeed 跳
我是一名优秀的程序员,十分优秀!