次の疑似コードを使用して、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")
}
}
ただし、ここではサーブレットコンテキストにアクセスできないことは明らかです。
そして次のようなコード:
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
password
auth.properties