You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ben Tomasini <be...@gmail.com> on 2007/07/09 19:52:58 UTC

Unwanted setter method exposed as web service operation using Spring

Hello,

I am using the Spring integration and seem to have a problem.  When my
service is deployed, the WSDL shows that my setter method (setProjectDao) is
exposed as a web service operation.  This method is only present so that
Spring can set the dependency.  How to I exclude this method?

Below is the java class and services.xml:

public class ProjectService {

    private ProjectDao projectDao;

    public void setProjectDao(ProjectDao projectDao) {
        this.projectDao = projectDao;
    }

    public Project[] getAll() {
    ...
    }

    public Project getForId(BigDecimal id) {
    ...
    }

    public Project create(Project project) {
    ...
    }

    public Project update(Project project) {
    ...
    }

}


<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>

  <service name="ProjectService">
    <parameter name="ServiceObjectSupplier" locked="false">
org.apache.axis2.extensions
.spring.receivers.SpringServletContextObjectSupplier</parameter>
    <parameter name="SpringBeanName"
locked="false">projectService</parameter>
    <operation name="getForId">
      <messageReceiver class="
org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </operation>
    <operation name="getAll">
      <messageReceiver class="
org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </operation>
    <operation name="update">
      <messageReceiver class="
org.apache.axis2.rpc.receivers.RPCMessageReceiver "/>
    </operation>
    <operation name="create">
      <messageReceiver class="
org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </operation>
  </service>

</serviceGroup>

Re: Unwanted setter method exposed as web service operation using Spring

Posted by Ben Tomasini <be...@gmail.com>.
Thanks.

That worked, but it seems too easy for someone to forget to add this.

Is there a way to go the other direction?  Only publish operations which are
explicitly specified?

Ben

On 7/9/07, robert lazarski <ro...@gmail.com> wrote:
>
> This should work for you, try placing this in the services.xml :
>
> <excludeOperations>
>      <operation>setProjectDao</operation>
>   </excludeOperations>
>
> HTH,
> Robert
>
> On 7/9/07, Ben Tomasini <be...@gmail.com> wrote:
> > Hello,
> >
> > I am using the Spring integration and seem to have a problem.  When my
> > service is deployed, the WSDL shows that my setter method
> (setProjectDao) is
> > exposed as a web service operation.  This method is only present so that
> > Spring can set the dependency.  How to I exclude this method?
> >
> > Below is the java class and services.xml:
> >
> > public class ProjectService {
> >
> >     private ProjectDao projectDao;
> >
> >     public void setProjectDao(ProjectDao projectDao) {
> >         this.projectDao = projectDao;
> >     }
> >
> >     public Project[] getAll() {
> >     ...
> >     }
> >
> >     public Project getForId(BigDecimal id) {
> >     ...
> >     }
> >
> >     public Project create(Project project) {
> >     ...
> >     }
> >
> >      public Project update(Project project) {
> >     ...
> >     }
> >
> > }
> >
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <serviceGroup>
> >
> >   <service name="ProjectService">
> >     <parameter name="ServiceObjectSupplier"
> > locked="false">org.apache.axis2.extensions
> > .spring.receivers.SpringServletContextObjectSupplier</parameter>
> >     <parameter name="SpringBeanName"
> > locked="false">projectService</parameter>
> >     <operation name="getForId">
> >       <messageReceiver
> > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
> >     </operation>
> >     <operation name="getAll">
> >       <messageReceiver
> > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
> >     </operation>
> >     <operation name="update">
> >       <messageReceiver
> > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver
> > "/>
> >     </operation>
> >     <operation name="create">
> >       <messageReceiver
> > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
> >     </operation>
> >   </service>
> >
> > </serviceGroup>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Re: Unwanted setter method exposed as web service operation using Spring

Posted by robert lazarski <ro...@gmail.com>.
This should work for you, try placing this in the services.xml :

<excludeOperations>
     <operation>setProjectDao</operation>
  </excludeOperations>

HTH,
Robert

On 7/9/07, Ben Tomasini <be...@gmail.com> wrote:
> Hello,
>
> I am using the Spring integration and seem to have a problem.  When my
> service is deployed, the WSDL shows that my setter method (setProjectDao) is
> exposed as a web service operation.  This method is only present so that
> Spring can set the dependency.  How to I exclude this method?
>
> Below is the java class and services.xml:
>
> public class ProjectService {
>
>     private ProjectDao projectDao;
>
>     public void setProjectDao(ProjectDao projectDao) {
>         this.projectDao = projectDao;
>     }
>
>     public Project[] getAll() {
>     ...
>     }
>
>     public Project getForId(BigDecimal id) {
>     ...
>     }
>
>     public Project create(Project project) {
>     ...
>     }
>
>      public Project update(Project project) {
>     ...
>     }
>
> }
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <serviceGroup>
>
>   <service name="ProjectService">
>     <parameter name="ServiceObjectSupplier"
> locked="false">org.apache.axis2.extensions
> .spring.receivers.SpringServletContextObjectSupplier</parameter>
>     <parameter name="SpringBeanName"
> locked="false">projectService</parameter>
>     <operation name="getForId">
>       <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>     </operation>
>     <operation name="getAll">
>       <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>     </operation>
>     <operation name="update">
>       <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver
> "/>
>     </operation>
>     <operation name="create">
>       <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>     </operation>
>   </service>
>
> </serviceGroup>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org