GitHJubの問題に基づいて、私は問題の一部がJVMパラメータをどのように渡しているのか、そしてどのように "spring.config.location"を使用しているかと思います。
私は本当にAzure Insightsに詳しくはありませんが、正しく理解していれば、ApplicationInsights.xmlファイルをロードして自分自身を構成しようとしています。 WebConfigurerAdapterでは、それ以前に既に初期化されているので、私が以前に示唆したように、本当に設定できません。とにかくその部分を残しましたが、すぐにロードする必要があるので、ファイルをクラスパスASAPに追加するいくつかの追加方法を提供しました。値がファイル」の「クラスパス」せずに、単にフォルダパスでなければなりません代わりに
java -jar build/libs/file-gateway.jar --spring.config.location=classpath:/apps/conf/ApplicationInsight.xml
:
新しい原料
まずあなたは、もともとのGitHubたala掲載していた、この行を見てみましょう"プレフィックス。また、 ' - 'の代わりに '-D'を使用してみてください。
このプロパティは、Springブートの自動構成プロパティファイルを含むディレクトリを参照することになっています。また、特定の "application.properties | yml"ファイルを参照することもできます。
これで私の以前の提案がうまくいくかもしれません。
旧提案
あなたがロードするリソースのためのユニークな方法が必要な場合は、アプリケーションにリソースハンドラを追加することができます。
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
@Value("${telemetry.folder}")
private String telemetryFolder;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceLocations(telemetryFolder);
}
}
および/またはあなたがapacheのIOでそれを読み込むことができます:
@Value("${telemetry.file}")
private String telemetryFile;
@Autowired
private ResourceLoader resourceLoader;
public String telemtryXml(){
return org.apache.commons.io.IOUtils.toString(resourceLoader.getResource(telemtryFile).getInputStream());
}
しかし、あなたが使用しているAPIは非常に早く、初期化する必要がない場合は、こののみ動作します。 GitHubの問題に関するあなたの最後のポストで
より新しい原料
、あなたはこれを試してみました:
代わり
java -jar build/libs/file-gateway.jar -applicationinsights.configurationDirectory="/apps/conf/"
を、このようなJVMパラメータとしてプロパティを追加してみてください:
java -jar build/libs/file-gateway.jar -Dapplicationinsights.configurationDirectory=/apps/conf/
の後に大文字の 'D'文字を追加して、パスから引用符を削除したことに注目してください。
クラスパスにファイルを追加するその他の方法は次のとおりです。
ディレクトリをJVMクラスパスに追加します。
のjava -cp "ビルド/ libsに/ファイルgateway.jar:/アプリケーション/ confに/ *" your.package.MainSpringBootApplication
これは(一般的に)でメインクラスを指定する必要があります'@SpringBootApplication'で注釈が付けられ、メインメソッドが含まれています。前と同じようにjarファイルを実行しませんが、classpathに追加しています。
- SpringBootについては忘れて、JEE開発者としてルーツに戻ってください。 "src/main/resources/META-INF"フォルダ、または "src/main/webapp/META-INF"フォルダの下にアプリケーション用の "context.xml"を追加してください。私は実行可能なwarファイルを構築している場合は後で、jarファイルの場合は後者を好む。
例のcontext.xml:
<?xml version='1.0' encoding='utf-8'?>
<!-- path should be the context-path of you application.
<Context path="/">
<Resources className="org.apache.catalina.webresources.StandardRoot">
<PreResources base="/apps/conf"
className="org.apache.catalina.webresources.DirResourceSet"
internalPath="/"
webAppMount="/WEB-INF/classes"/>
</Resources>
</Context>
また、ELとJVMパラメータを使用することができます。だから、
あなたはこれでjarファイルを実行した場合::)
がどのように展開され、実行されているのに役立ちます
希望:
あなたはこれでリソースベースを設定することができますあなたのアプリケーション(OS、クラウドプラットフォームなど)? – Pytry
完全な問題description.httpsはあります://github.com/Microsoft/ApplicationInsights-Java/issues/472 – Muni