Classes are not generated on the fly.
They are generated by wsdl2java, which is usually configured
in a maven plugin in your pom.
You need to generate the classes for your two services if you want
to use both inside the SU.

On Aug 29, 2007, at 4:14 PM, Ryan Moquin wrote:

Hate to keep bugging you, but I have to be doing something wrong. I looked
up in the docs, the JSR181 proxy element.  I tried to set it up in my
xbean.xml, in the service unit for my WaterGaugeService which wants to use my AlertService. In my xbean.xml for my WaterGaugeService, I defined the namespace that is in my AlertService SU, then added a proxy configuration. I also added a property to my WaterGaugeService using the interface for the
AlertService.  When I run my maven build, I get this error:

[ERROR] BUILD ERROR
[INFO]
---------------------------------------------------------------------- --
[INFO] Failed to generate jbi.xml

Embedded error: Unable to generate service unit descriptor!
com.bae.gse.flare.service.alert.AlertServiceProxy
[INFO]
---------------------------------------------------------------------- --

Doesn't the Proxy class get generated on the fly? Or do I need to create
it?

 Here is how I configured my xbean.xml (the relevant snippet):

<jsr181:endpoint pojoClass="
com.bae.gse.flare.service.watergauge.WaterGaugeServiceImpl"
                   wsdlResource="classpath:WaterGaugeService.wsdl"
                   style="document" />

  <jsr181:endpoint serviceInterface="
com.bae.gse.flare.alertservice.AlertServicePort">
    <jsr181:pojo>
      <bean class="com.bae.gse.flare.service.alert.AlertServiceProxy">
        <property name="alert">
          <jsr181:proxy service="alertservice:AlertService"
context="#context" type="com.bae.gse.flare.alertservice.AlertServicePort" />
        </property>
      </bean>
    </jsr181:pojo>
  </jsr181:endpoint>


On 8/29/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:

While I'm thinking about it, is there any reason for going through the NMR vs. just using the bean directly? Is it only to be loosely coupled or are
there any other advantages?

On 8/29/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:

Ah, so that is different than what I thought I was supposed to do. I'll
give it a try, thanks!!

On 8/29/07, Nodet Guillaume < [EMAIL PROTECTED]> wrote:


Let's say you have two beans foo.bar.AImpl and foo.bar.BImpl that
implement
the foor.bar.A and foo.bar.B interfaces.  Then you would have

package foo.bar;
@WebService(..)
class AImpl implements A {
    private B b;
    public void setB(B b) {
      this.b = b;
    }
    ...
}

and you can wire together using the <jsr181:proxy /> if you want to
go through
the NMR and be independent of B location and implementation, or using
spring
just inject an instance of the second service into the first one:

<bean id="a" class="foo.bar.AImpl">
   <property name="b" value-ref="b" />
   ..
</bean>

<bean id="b" class="foo.bar.BImpl">
   ...
</bean>

You can still expose those beans (one ore both) as jsr181 endpoints
in the
usual way...

Cheers,
Guillaume Nodet

On Aug 29, 2007, at 2:41 AM, Ryan Moquin wrote:

I'm sorry if there is something really obvious somewhere about how
this is
done, but I was wondering if someone can tell me or point me to
where I can
find out how to make two JSR181 services in servicemix talk to each
other.
I would just have one call the other as if they weren't hooked to
the NMR,
but I'm assuming that's not the most efficient and that there is a
better
way.  I saw some various pieces of code that sound kind of like
what I want,
but since I'm a bit new still to how to interact with Servicemix
(other than
deploy to and call a service externally) so I'm a little bit unsure
of what
I need to do.  Can anyone point me in the right direction?

Thanks!

Ryan





--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to