Spring 2.5を4.2にアップグレードしています。 問題は、プロパティタイプがorg.springframework.core.io.ClassPathResource
の1つのBeanにあります。リソース値はxmlでp:location="classpath:/<the resource path>"
Spring 2.5から4.2へのアップグレードの問題 - BeanWrapperImpl
と定義されています。これは完全なBeanプロパティーにリソースが移入されています。しかし、4.2では値が設定されていません。
私はコードをデバッグし、クラスorg.springframework.beans.BeanWrapperImpl
が値を操作し、文字列をSpring 2.5の実際の値から削除していることがわかりました。
4.2でも同じことが当てはまりません。クラスorg.springframework.beans.BeanWrapperImpl
は、リソースを見つけることができない春の値を変更していません。
誰もが同様の状況に直面しましたか?どのような解決策を適用しましたか?
おかげで、 Hanumant
EDIT 1:サンプルコード
ばねconfigファイル
<bean class="com.test.sample.TestBean" id="testBean"
p:schemaLocation="classpath:/com/test/sample/Excalibur_combined.xsd" />
TestBean.java
public class TestBean {
private ClassPathResource schemaLocation;
public ClassPathResource getSchemaLocation() {
return schemaLocation;
}
public void setSchemaLocation(ClassPathResource schemaLocation) {
this.schemaLocation = schemaLocation;
}
}
私は、Bean定義からclasspath:
を削除する場合
App.java
public class App {
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("classpath:/com/test/sample/spring-config.xml");
TestBean tb = (TestBean) ap.getBean("testBean");
try {
URL url = tb.getSchemaLocation().getURL();
System.out.println(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
エラーメッセージ
INFO: Loading XML bean definitions from class path resource
[com/test/sample/spring-config.xml] java.io.FileNotFoundException:
class path resource
[classpath:/com/test/sample/Excalibur_combined.xsd] cannot be resolved
to URL because it does not exist at
org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:187)> at com.test.sample.App.main(App.java:20)
は、しかし、それは動作します。
bean定義xmlファイルにはclasspth:
が必要ですか?なぜSpring 2.5で正常に動作していたのですか?
スニペットではなくクラスに実際の設定を追加してください。 –
@ M.Deinum、私は元の質問をコード – hanumant
に変更しました。あなたのコードの初心者にとっては、特定のタイプではなく、 'Resource'でなければなりません。読み込めない場合は、その場所に存在しないためです(つまり、例外があなたに伝えているものです)。だから私は他の何かがあなたの構造で変わったと思います(そして、あなたは春だけではなく他のフレームワーク/ツールもアップグレードしているわけではないかもしれません)。 –