在Glassfish上部署Web应用程序时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Glassfish上部署Web应用程序时出错相关的知识,希望对你有一定的参考价值。
我正在使用Eclipse + Glassfish 4.0
部署简单项目时,出现以下错误:
cannot Deploy Testmart
deploy is failing=Error occurred during deployment: Exception while loading
the app : java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: java.lang.RuntimeException:
Servlet web service endpoint '' failure. Please see server.log for more details.
编辑:
ProductCatalog.java类:
import org.hamed.train.service.ProductServiceImp;
@WebService
public class ProductCatalog {
ProductServiceImp productService = new ProductServiceImp();
@WebMethod
public List<String> getProducts() {
return productService.getProductCategories();
}
public List<String> getProducts(String category) {
return productService.getProducts(category);
}
}
system.log
内容:http://txs.io/B7P
根据@Silly Freak的评论,我找到了答案。
这两个方法不应该具有相同的名称:
product catalog.Java
public List<String> getProducts() {
return productService.getProductCategories();
}
public List<String> getProducts(String category) {
return productService.getProducts(category);
}
解:
我将第一个方法名称更改为其他内容并且像魅力一样工作。
对我来说问题是,我错过了包含无参数构造函数或“Product”类。当我包含无参数构造函数时,它工作。
注意:JAXB不需要arg构造函数来实例化对象。
我有这个问题,glassfish是在Linux环境下。检查你的$JAVA_HOME
它应该设置为jdk
export JAVA_HOME=/usr/java/jdk1.7.0_55
/opt/glassfish4/glassfish/bin # echo $JAVA_HOME
/usr/java/jdk1.7.0_55
然后问题解决了..
我也遇到了与eclipse galileo相同的问题,我确信它与我的hibernate映射有关,因为当我使用HBM文件对表进行新映射时发布过程开始失败,映射在HBM文件中是正确的但是问题出在我的DAO课上。
我DAO课程的示例代码: -
public class MyDAO
{
private int id;
private int name;
private boolean isActive;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isActive() {
return isActive;
}
public void setActive(boolean isActive) {
this.isActive = isActive;
}
}
你可以看到布尔变量的getter和setter与其他两个变量不同(所有的getter和setter都是由eclipse本身开发的)。现在从框架角度查看,它将获取一个属性名称,将其第一个字符更改为大写,并附加一个get或set作为前缀来调用属性的getter和setter。因此,在布尔属性的情况下,它会出错。
因此,当我将现有的getter和setter更改为getIsActive()
和setIsActive()
等默认格式时,它已正确发布。
以上是关于在Glassfish上部署Web应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Netbeans IDE 在 glassfish 的特定端口上部署 Web 应用程序?
在Glassfish 5.0中部署ADF WEbapp时出错
当使用Eclipse在Glassfish上重命名和部署动态Web项目的名称时,获取HTTP状态404 - 未找到