Java Wildfly:web服务已部署但不可用 问题描述:
我想通过Wildfly部署一个web服务,但我无法通过web浏览器访问它 我就是这么做的:Java Wildfly:web服务已部署但不可用 问题描述:,java,maven,soap,jboss,wildfly,Java,Maven,Soap,Jboss,Wildfly,我想通过Wildfly部署一个web服务,但我无法通过web浏览器访问它 我就是这么做的: 我运行standalone.sh 我使用mvn clean package wildfly:deploy部署项目 然后我尝试通过http://localhost:8080/lab-ear/Hello?wsdl但我只得到:“404-未找到” 部署时的碎片。 以下是Wildfly服务器初始化时的数据。 在这里部署 其他详情: 我做了另一个web服务工作的项目,但是还有其他问题,所以我从头开始 是这两个项目
standalone.sh
http://localhost:8080/lab-ear/Hello?wsdl
但我只得到:“404-未找到”
部署时的碎片。
以下是Wildfly服务器初始化时的数据。
在这里部署 其他详情: 我做了另一个web服务工作的项目,但是还有其他问题,所以我从头开始 是这两个项目结构的比较。左边是旧项目,右边是新项目 重要的是,在新项目中,我没有得到
web
目录。
可能相关问题:
此外,在此类项目中是否需要使用Intellij IDEA? 编辑 在我的EJB模块中,包pl.edu.agh.soa中有一个类
我试图改变这一点:
@Stateless
@WebService
public class Hello {
...
致:
但它也不起作用。根本不需要Intellij IDEA
我认为你的问题是缺少网络目录。如果没有WEB-INF/WEB.xml,应用程序服务器将不知道它应该提供什么服务。我能够得到一个简单的“HelloWorld”类型的JAX-WS服务,它只运行以下代码:
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
@Stateless
public class HelloWorld {
@WebMethod
public String sayHello( String name ) {
return "Hello " + name;
}
}
从这里,我可以访问URLhttp://localhost:8080//HelloWorld?wsdl
。这是在Wildfly 18中
问题是您没有指定@WebMethod
。虽然类被正确标记,但其中没有任何可“运行”的内容
此外,虽然它确实可以处理JAX-WS不需要但您的代码可能需要的无状态EJB注释。问题已解决。我认为我在
pom.xml
文件中不必要地更改了太多依赖项的版本
另外,在main
pom.xml
文件中,只有
需要从1.0.2.Final
升级到2.0.2.Final
,但之前我还更改了其他插件的版本。现代web项目不再需要web.xml
。这些都可以放在注释中。@stdunbar我认为注释可能有问题,但我不确定。不清楚您的代码是否有问题,因为我们没有看到任何问题。服务的JAX-WS代码在哪里?@stdunbar我现在已经添加了此代码。但是我的代码中已经有了@WebMethod注释。例如,在listSubjects()方法之前。@WojciechŁupina-从您目前发布的内容来看,这还不清楚。然而,回顾你的帖子,我发现你正在部署到labweb.war
。你试过去http://localhost:8080/lab-web/Hello?wsdl
?实际上,我试图通过运行mvn clean package-wildfly:deploy
并在转到http://localhost:8080/lab-ear/Hello?wsdl
我得到了404-notfound
错误。但是当我现在尝试部署到labweb.war
并转到http://localhost:8080/lab-war/Hello?wsdl
,我得到一个未找到
错误(没有404
)。我确信在我的项目中应该部署EAR文件,而不是war。
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
@Stateless
public class HelloWorld {
@WebMethod
public String sayHello( String name ) {
return "Hello " + name;
}
}