Java Wildfly: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服务工作的项目,但是还有其他问题,所以我从头开始 是这两个项目

我想通过Wildfly部署一个web服务,但我无法通过web浏览器访问它

我就是这么做的:

  • 我运行
    standalone.sh
  • 我使用mvn clean package wildfly:deploy部署项目
  • 然后我尝试通过
    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;
        }
    }
    
    从这里,我可以访问URL
    http://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;
        }
    }