Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java struts2 hibernate和spring应用程序及soap web服务_Java_Spring_Soap_Struts2_Action Mapping - Fatal编程技术网

java struts2 hibernate和spring应用程序及soap web服务

java struts2 hibernate和spring应用程序及soap web服务,java,spring,soap,struts2,action-mapping,Java,Spring,Soap,Struts2,Action Mapping,我有一个使用struts2、spring和hibernate框架的web应用程序。现在我想通过soapweb服务公开它的一些方法。我有一个类,我只是用@WebService注释和服务端点接口对它进行了注释。现在,当我在glassfish上部署我的应用程序时,它部署得很好,但当我尝试通过glasssfish管理控制台访问wsdl时。它给了我以下的错误 There is no Action mapped for namespace [/] and action name [UsersControll

我有一个使用struts2、spring和hibernate框架的web应用程序。现在我想通过soapweb服务公开它的一些方法。我有一个类,我只是用
@WebService
注释和服务端点接口对它进行了注释。现在,当我在glassfish上部署我的应用程序时,它部署得很好,但当我尝试通过glasssfish管理控制台访问wsdl时。它给了我以下的错误

There is no Action mapped for namespace [/] and action name [UsersControllerImplService] associated with context path [/ossoc].
我理解它与配置有关,但我无法确定是什么配置

web.xml

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

        <display-name>ossoc</display-name>


         <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>

        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

        <welcome-file-list>
            <welcome-file>/index.jsp</welcome-file>
        </welcome-file-list>

    </web-app>

奥索克
org.springframework.web.context.ContextLoaderListener
支柱2
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
支柱2
/*
/index.jsp
struts2.xml

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.objectFactory" value="spring" />

    <package name="user"  namespace="/" extends="struts-default">
        <interceptors>
            <interceptor name="authentication" class="com.riteshsangwan.ossoc.core.interceptors.AuthenticationInterceptor"></interceptor>
            <interceptor-stack name="authStack">
                <interceptor-ref name="authentication"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="authStack"></default-interceptor-ref>

         <global-results>
            <result name="login" type="redirect">/index.action</result>
        </global-results>

        <action name="register" class="com.riteshsangwan.ossoc.core.actions.RegisterAction">
          <interceptor-ref name="defaultStack"></interceptor-ref>
          <result name="success">/index.jsp</result>
          <result name="error">/register.jsp</result>
          <result name="input">/register.jsp</result>  
        </action>

        <action name="login" class="com.riteshsangwan.ossoc.core.actions.LoginAction">
          <interceptor-ref name="defaultStack"></interceptor-ref>
          <result name="success">/user/home.jsp</result>
          <result name="error">/index.jsp</result>
          <result name="input">/index.jsp</result>  
        </action>

        <action name="activate" class="com.riteshsangwan.ossoc.core.actions.ActivateAction">
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result name="success">/user/home.jsp</result>
            <result name="error">/index.jsp</result>
            <result name="input">/index.jsp</result>
         </action>



        <action name="index">
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result>/index.jsp</result>
        </action>

        <action name="home">
            <result>/user/home.jsp</result>
        </action>

        <action name="showfiles" class="com.riteshsangwan.ossoc.core.actions.ShowFiles">
            <result name="success">/user/files.jsp</result>
        </action>

        <action name="edit">
            <result>/user/edit.jsp</result>
        </action>

        <action name="logout" class="com.riteshsangwan.ossoc.core.actions.LogoutAction">
            <result name="success">/index.jsp</result>
        </action>

        <action name="changepassword" class="com.riteshsangwan.ossoc.core.actions.ChangePassword">
            <result name="success">/user/edit.jsp</result>
        </action>

        <action name="upload" class="com.riteshsangwan.ossoc.core.actions.UploadFile">
            <result>/user/home.jsp</result>
        </action>

        <action name="showgrid" class="com.riteshsangwan.ossoc.core.actions.ShowFiles">
            <result name="success">/user/files.jsp</result>
        </action>

        <action name="deletefile" class="com.riteshsangwan.ossoc.core.actions.DeleteFile">
            <result name="success">/user/files.jsp</result>
        </action>

        <action name="downloadfile" class="com.riteshsangwan.ossoc.core.actions.DownloadFile">
            <result name="success" type="stream">
                <param name="contentType"></param>
                <param name="inputName"></param>
                <param name="contentDisposition"></param>
                <param name="bufferSize"></param>
                <param name="allowCaching"></param>
                <param name="contentLength"></param>
            </result>
        </action>

    </package>

</struts>

/行动指数
/index.jsp
/register.jsp
/register.jsp
/user/home.jsp
/index.jsp
/index.jsp
/user/home.jsp
/index.jsp
/index.jsp
/index.jsp
/user/home.jsp
/user/files.jsp
/user/edit.jsp
/index.jsp
/user/edit.jsp
/user/home.jsp
/user/files.jsp
/user/files.jsp
applicationCOntext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">

        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />


        <!-- Database Configuration -->

    <import resource="DataSource.xml"/>
    <import resource="HibernateSessionFactory.xml"/>

    <!-- Beans Declaration -->
    <import resource="UsersBean.xml"/>

</beans>

为什么这里的每个人都急于投票反对

这就是问题所在。 在
web.xml
中,struts2过滤器映射了
/*url模式
,因此struts2将过滤每个请求,包括对webservice servlet的请求。因为过滤器在servlet之前执行,所以我得到的是动作未映射错误。 来自struts2文档。 操作映射扩展名已更改为.action plus“”,这意味着如果我只需在地址栏中输入servlet的名称,struts2就会将其作为操作,并检查struts2.xml以获取相关的操作映射,因为没有操作映射,所以它会抛出错误

解决方案 我只是在url模式映射中的url之后添加了.extension,这样struts2将被视为其他选项将要使用的servlet请求

<constant name="struts.action.excludePattern" value="URLTOEXCLUDE"/> 
and configure the webservice to use the excluded URL

并将Web服务配置为使用排除的URL

希望这对其他人有所帮助。

您在浏览器中输入的哪些url无法映射到您配置中的操作?@RomanC在glassfish管理控制台中,这是链接