我有这个Servlet也包含它的构造函数但是当我试图在Weblogic服务器上运行我的应用程序时,它给了我一个错误,#34; SocialMediaSessionHandler"没有默认构造函数。该应用程序在其他平台上运行良好但是当我在服务器之间切换时出现错误:实例化servlet时出错:" SocialMediaSessionHandler"。
public class SocialMediaSessionHandler extends HttpServlet {
private static final long serialVersionUID = 1L;
HttpSession session = null;
private static final CDLoggerInterface log = CDLogger
.getLogger(SocialMediaSessionHandler.class);
Resource resource = new ClassPathResource("/fp.properties");
private boolean debugEnabled;
String serverUrl = "";
IWebServiceManager webServiceManager;
Utility util = null;
/**
* @see HttpServlet#HttpServlet()
*/
public SocialMediaSessionHandler() {
util = new Utility();
// TODO Auto-generated constructor stub
try {
ApplicationContext context = LoadSpringManageService
.LoadApplicationContext();
webServiceManager = (IWebServiceManager) context
.getBean("webserviceManager");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
if (props.getProperty("debug.enable") != null
&& props.getProperty("debug.enable") != "")
debugEnabled = Boolean.parseBoolean(props
.getProperty("debug.enable"));
if (props.getProperty("server.url") != null
&& props.getProperty("server.url") != "")
serverUrl = props.getProperty("server.url");
} catch (MalformedURLException e) {
log.error("MalformedURLException occured.....", e);
} catch (Exception e) {
log.error("Problem in loading CD Logger properties file", e);
}
}
答案 0 :(得分:0)
当我们查看Servlet的生命周期时,它最初加载该类,然后通过调用默认构造函数创建Servlet实例。并且步骤继续。
但是现在在你的情况下你正在重载构造函数,那里禁止通过container.Default构造函数(没有任何参数的构造函数)创建默认构造函数。只有在没有创建构造函数时才会创建默认构造函数。
此外,在Servlet中定义构造函数并不是一个好习惯。
让我们做一些R& D尝试在你的班级中编写一个默认的构造函数,我的猜测它应该可行。