Glassfish 2.11未在管理控制台中显示webservices

时间:2013-11-06 16:07:20

标签: java web-services glassfish jax-ws

我正在使用openesb运行glassfish 2.1.1。我的问题在于我的Web服务正常运行,但要求在glassfish管理控制台中注册Web服务。不幸的是,管理控制台没有显示我的任何Web服务。为了澄清,在导航中选择“Web服务”时,右侧窗格显示“找不到项目”,但服务运行正常。我完全不知道如何解决这个问题。我打开了最好的日志,但没有看到任何可以帮助我识别这个问题的东西。我的项目是一个简单的战争应用程序,我没有使用任何ejb。

Web.xml中

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>ConsolidatedWS</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>ConsolidatedWS</servlet-name>
        <url-pattern>/ConsolidatedWS</url-pattern>
    </servlet-mapping>
  <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

网络服务

@SchemaValidation(handler= SchemaValidationHandler.class)
@WebService(serviceName = "ConsolidatedWS", targetNamespace = "http://consolidatedapi/1.0", endpointInterface = "com.ConsolidatedWS")
@HandlerChain(file="/META-INF/SoapHandlerChain.xml")
public class ConsolidatedWSImpl implements ConsolidatedWS {

    @Override
    public CreateConsolidatedOrderResponse createConsolidatedOrder(ConsolidatedOrder order) {
        return new CreateConsolidatedOrderResponse();
    }
}

太阳jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
  <endpoint implementation="com.ConsolidatedWSImpl" name="ConsolidatedWS" url-pattern="/ConsolidatedWS"/>
</endpoints>

2 个答案:

答案 0 :(得分:1)

我在Glassfish 5中也遇到了同样的问题。我从项目中删除了web.xml,再次构建了该应用程序,运行了服务器,它开始在Glassfish控制台上显示为Web服务应用程序。

Default glassfish xml

Glassfish console screenshot

答案 1 :(得分:0)

我想我想出来了,这是几件事情的结合。感谢Paul,因为我的web.xml现在没有监听器和servlet。

  1. 我提供了metro webservices-rt,因为这可能会搞乱Glassfish城域实施。

    <dependency>
        <groupId>org.glassfish.metro</groupId>
        <artifactId>webservices-rt</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    
  2. 正如Paul所建议我删除了servlet映射和监听器

  3. <强>的web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
    </web-app>   
    

    <强>太阳javaws.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
     </endpoints>
    

    <强> sun-web.xml中

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">
    <sun-web-app error-url="">
        <context-root>/consolidated-api</context-root>  
        <class-loader delegate="true"/>
        <jsp-config>
            <property name="keepgenerated" value="true">
                <description>Keep a copy of the generated servlet class' java code.</description>
            </property>
        </jsp-config>
    </sun-web-app>