我有一个使用 Resteasy(在 Appengine 之上运行)的 Rest 服务,具有以下伪代码:
@Path("/service")
public class MyService {
@GET
@Path("/start")
public Response startService() {
// Need to read properties file here.
// like: servletContext.getResourceAsStream("/WEB-INF/config.properties")
}
}
但是很明显,这里无法访问 servlet 上下文。
和像这样的代码:
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("/WEB-INF/config.properties");
无法在 Appengine 环境中执行。
编辑:
我试过用 Spring 来做,比如:
appContext.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="/WEB-INF/auth.properties"/>
</bean>
然后,把它放在实际的类字段上:
@Path("/service")
public MyService{
@Autowired
@Value("${myservice.userid}")
private String username;
@Autowired
@Value("${myservice.passwd}")
private String password;
// Code omitted
}
但是,MyService
抱怨的部分代码因为username
andpassword
没有被“注入”,我的意思是它是空的,尽管它在auth.properties
文件中