I am trying to setup a Spring.net web-service but keep getting an error message that I cannot figure out.
Error:
System.NotSupportedException: Target 'target' of type 'Spring.Objects.Factory.Support.RootWebObjectDefinition' does not support methods of 'StudentRegistration.Services.IBoundaryService'.
at Spring.Util.AssertUtils.Understands(Object target, String targetName, Type requiredType)
at HelloWorldExporter.GetAllBounds()
Code:
public interface IBoundaryService {
XmlDocument GetAllBounds();
}
public class BoundaryService :IBoundaryService
{
public virtual IBoundaryDao BoundaryDao { get; set; }
public virtual XmlDocument GetAllBounds()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<test>ok</test>");
return xmlDoc;
}
}
Configuration:
<object name="BoundaryService" type="StudentRegistration.Services.BoundaryService, StudentRegistration"
abstract="true">
</object>
<object id="BoundaryExporter" type="Spring.Web.Services.WebServiceExporter, Spring.Web">
<property name="TargetName" value="BoundaryService"/>
<property name="Namespace" value="http://fake/services"/>
<property name="Description" value="something"/>
<property name="MemberAttributes">
<dictionary>
<entry key="GetAllBounds">
<object type="System.Web.Services.WebMethodAttribute, System.Web.Services">
<property name="Description" value="something."/>
<property name="MessageName" value="GetAllBounds"/>
</object>
</entry>
</dictionary>
</property>
</object>
What should I try to clear this up?
The Spring.NET reference is wrong on the xml declaration (i had the same issue a few days ago), or should i say its not crystal clear.
the above declaration applies when you have an actual
.asmx
serviceWHen you have a PONO which you export as a WebService using
Spring.Web.Services.WebServiceExporter
the object that will be exported must be declared as:the
target
property of the WebServiceExporter applies to theid
of a declared object, the abstract part is not required as Spring.NET takes the role generating the webservice.Note that your exposed service name (with your current cfg) will be
(..)/BoundaryExporter.asmx
Edit: The config statement for standard .asmx web services using the name, type attributes seems to be broken, at least for spring version 1.3.0.20349