Interceptor実装サービス jp.ossc.nimbus.service.aop.interceptor.servlet.ServletRequestExchangeInterceptorService

jp.ossc.nimbus.service.aop.interceptor.servlet.ServletRequestExchangeInterceptorServiceは、HTTPリクエストを任意のオブジェクトに交換するInterceptor実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.util.converter.ConverterHTTPリクエストを任意のオブジェクトに変換する。
jp.ossc.nimbus.service.context.Context交換後のオブジェクトを設定するコンテキスト。
jp.ossc.nimbus.service.journal.Journalジャーナルを出力する。
jp.ossc.nimbus.service.journal.editorfinder.EditorFinderジャーナルを編集するjp.ossc.nimbus.service.journal.JournalEditorを見つける。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- HTTPリクエストを任意のオブジェクトに交換するInterceptorサービス -->
  8. <service name="ServletRequestExchangeInterceptor"
  9. code="jp.ossc.nimbus.service.aop.interceptor.servlet.ServletRequestExchangeInterceptorService">
  10. <!-- HTTPリクエストを任意のオブジェクトに変換するConverterサービスのサービス名を設定する -->
  11. <attribute name="ConverterServiceName">#DataSetServletRequestParameterConverter</attribute>
  12. <depends>DataSetServletRequestParameterConverter</depends>
  13. </service>
  14. <!-- ServletRequestをDataSetに変換するConverterサービス -->
  15. <service name="DataSetServletRequestParameterConverter"
  16. code="jp.ossc.nimbus.util.converter.DataSetServletRequestParameterConverter">
  17. <attribute name="BeanFlowInvokerFactory"><service-ref>#BeanFlowInvokerFactory</service-ref></attribute>
  18. <attribute name="DataSetPathPrefix">dataset/request</attribute>
  19. <depends>BeanFlowInvokerFactory</depends>
  20. </service>
  21. <!-- 業務フローを生成するBeanFlowInvokerFactoryサービス -->
  22. <service name="BeanFlowInvokerFactory"
  23. code="jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryService">
  24. <attribute name="DirPaths">flow</attribute>
  25. <attribute name="BeanFlowInvokerAccessClass">jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2</attribute>
  26. </service>
  27. </manager>
  28. </server>

上記で使用するDataSetを生成する業務フローの例を示す。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE flows PUBLIC
  3. "-//Nimbus//DTD Nimbus Bean Flow 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/beanflow_1_0.dtd">
  5. <flows>
  6. <!-- パス"/Login.*"用のDataSetを生成する業務フロー -->
  7. <flow name="dataset/request/Login">
  8. <step>
  9. <target><object code="jp.ossc.nimbus.beans.dataset.DataSet"/></target>
  10. <attribute name="Name">LoginRequest</attribute>
  11. <attribute name="HeaderSchema(Authenticate)">
  12. :userId,java.lang.String
  13. :password,java.lang.String
  14. </attribute>
  15. <result><this/></result>
  16. </step>
  17. </flow>
  18. <flows>


アスペクト指向/Interceptor