自定义Spring-WS MessageDispatcher如何避免配置同名properties文件?
解决Spring-WS MessageDispatcher子类必须加载同名properties文件的问题
问题原因
你的MyReceiver继承的MessageDispatcher(或其父类)在构造过程中,会自动尝试加载与当前子类同名的.properties文件(如MyReceiver.properties),若文件不存在则抛出初始化异常。
解决方案
找到父类中负责加载该properties文件的方法,重写它并提供空实现,跳过文件加载逻辑即可。
具体代码示例
@Component("myReceiver") public class MyReceiver extends MessageDispatcher { // 显式构造方法,确保调用父类构造 public MyReceiver() { super(); } // 重写父类中加载配置的方法,改为空实现 @Override protected void loadConfiguration() { // 不执行任何加载操作,跳过properties文件要求 } @Override public void receive(MessageContext messageContext) throws Exception { // 你的业务逻辑实现 } }
补充说明
如果父类中负责加载文件的方法名称不是loadConfiguration,可以通过以下方式定位:
- 查看父类构造方法中调用的加载配置相关方法
- 分析报错栈信息,找到抛出
IllegalStateException的具体方法,重写该方法并避免触发文件加载逻辑即可。
内容的提问来源于stack exchange,提问作者rhbc73
相关产品推荐
相关产品推荐

