我正在尝试使用spring实现一个简单的Web服务。以下bean声明已添加到app-ctx.xml:
<bean class="com.user.services.MessageService_BindingImpl" scope="request"/>
一切都很完美。之后,我决定尝试通过构造函数使用注入 - 我添加了一个带有一个参数的简单构造函数(String类型),并且我修改了bean混淆:
<bean class="com.user.services.MessageService_BindingImpl" scope="request">
<constructor-arg type="java.lang.String" value="Hello world"/></bean>
之后我得到了以下异常:
java.lang.InstantiationException:com.user.services.MessageService_BindingImpl
看起来我的构造函数有一些东西。添加默认的非arg构造函数后,异常消失。如何使用重载的构造函数?感谢。
MessageService_BindingImpl -
public class MessageService_BindingImpl implements com.user.service.MessageService_PortType {
public MessageService_BindingImpl (String hello) {
}
public ReadMessagesResponse readMessages(ReadMessagesRequest readMessagesRequest) throws RemoteException {
MessageService mService = new MessageService();
return mService.readmessages();
}
}
答案 0 :(得分:1)
也许我误解了你的问题。
你问为什么
<bean class="com.user.services.MessageService_BindingImpl" scope="request"/>
像
这样的课程失败了public class MessageService_BindingImpl implements com.user.service.MessageService_PortType {
public MessageService_BindingImpl (String hello) {
}
...
}
如果是这样,那么答案是通过不提供任何constructor-arg
,Spring会尝试使用你的类'无参数构造函数。由于你没有,它无法使用它。