0

Bean のロード中に、プロパティ値の代わりにプレースホルダーを取得しています。

プロパティファイル

tm.web.keystore.key.password=WaheeD
tm.web.tcp.backlog=1024
tm.web.min.jetty.threads=8
tm.web.max.jetty.threads=25

appcontext.xml ファイル

<bean class="com.intel.ssg.mconsole.core.web.WebServer" id="webServer">
    <property name="port" value="${tm.web.port}" />
    <property name="address" value="${tm.web.address}" />
    <property name="warLocation" value="${tm.home}/mconsole.war" />
    <property name="secure" value="${tm.web.secure}" />
    <property name="keystoreLocation" value="${tm.web.keystore.location}" />
    <property name="keystorePassword" value="WaheeD" />
    <property name="keyPassword" value="${tm.web.keystore.key.password}" />
    <property name="tcpBacklog" value="${tm.web.tcp.backlog}" />
    <property name="minJettyThreads" value="${tm.web.min.jetty.threads}" />
    <property name="maxJettyThreads" value="${tm.web.max.jetty.threads}" />
</bean>

マーシャラー経由でロードする

 try {
     FileInputStream fis = new FileInputStream(getAppContextFile());
     try {
         return (Beans) JAXBUtil.getUnmarshaller().unmarshal(fis);
     } finally {
         fis.close();
     }

Beans では、正確な値ではなく、Bean webServer ポートの ${tm.weberver.port} として値を取得しています.8443 ポートと仮定します。

4

2 に答える 2

1

ポート番号のプロパティを持たないプロパティファイル、を使用するコンテキストファイルを投稿する${tm.web.port}と、テキストに。を使用していることが示されます${tm.weberver.port}

私はあなたの間違いのために3つの可能な場所を見ます。これは、実際に他のプロパティを設定していることを前提としています。そうでない場合は、Andreyのコメントを参照してください。

于 2012-07-31T19:44:25.990 に答える
1

ApplicationContext.xmlからBeanを明示的にロードする必要はありません。

次のものが存在することを確認してください。

  • ApplicationContext.xmlには、PropertyFileのプロパティローダー(PropertyPlaceholderConfigurerなど)が必要です
  • アプリケーションでは、アプリケーションコンテキストローダーが必要です。現在のフレームワークに組み込まれているものがあるかもしれません。たとえば、SpringMVCのDispatcherServletのWebApplicationContextです。始めている場合は、ClassPathXmlApplicationContextを使用できます。
于 2012-07-31T19:44:33.767 に答える