2010-11-19 3 views
0

Я пытаюсь настроить веб-службу Spring.net, но продолжаю получать сообщение об ошибке, которое я не могу понять.Как я могу заставить работать Spring.net Webservice?

Ошибка:

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() 

Код:

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; 
     } 
    } 

Конфигурация:

<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> 

Что я должен попытаться выяснить это?

ответ

2

Ссылка Spring.NET неверна в объявлении xml (у меня была такая же проблема несколько дней назад), или я должен сказать, что она не кристально чиста.

<object name="BoundaryService" 
     type="StudentRegistration.Services.BoundaryService, StudentRegistration" 
     abstract="true" /> 

выше заявление относится, когда у вас есть фактический .asmx Service

Если у вас есть Pono, который вы экспорта в WebService, используя Spring.Web.Services.WebServiceExporter объект, который будет экспортироваться должен быть объявлен как:

<object id="BoundaryService" 
     type="StudentRegistration.Services.BoundaryService, StudentRegistration" 
/> 

target свойство WebServiceExporter относится к объявленному объекту id, абстрактная часть не требуется, поскольку Spring.NET принимает роль, генерирующую веб-сервис.

Обратите внимание, что подвергается имя службы (с текущим CFG) будет (..)/BoundaryExporter.asmx

Edit: Утверждение конфигурации для стандартных .asmx веб-сервисов с использованием имя, тип атрибуты, кажется, сломана, по крайней мере, для весенней версии 1.3.0.20349

Смежные вопросы