You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by jin1212 <ji...@gmail.com> on 2007/07/30 19:44:37 UTC

two ofbiz application communicating through SOAP

Hello,
   Our company has the need to physically have accounting/manufacturing
portion of Ofbiz on server A, and e-commerce apps on server B,C,D .. etc.
The servers will have to communicate through web services call provided all
relevent services have 'export' flag set to true. I would like to know if
this is even possible because Ofbiz uses a a single database for all its
applications. I can see issues right now with database syncing. For example,
different products with same id. Unless there is a way to identify the
global productId  from a clientProductId, I just dont see how this can be
done.

thank you, jeremy
 
-- 
View this message in context: http://www.nabble.com/two-ofbiz-application-communicating-through-SOAP-tf4173169.html#a11869978
Sent from the OFBiz - User mailing list archive at Nabble.com.


Re: two ofbiz application communicating through SOAP

Posted by jin1212 <ji...@gmail.com>.
Thank you both for the tips!
I have begin to dig in to the actual implementation, and I have encountered
a problem.
Looking at controller.xml for the e-commerce portion, there is a request uri
called 'processOrder' which triggers an event to a java method called
'createOrder'. This method takes in the usual HttpServletRequest, and
HttpServletResponse. However my problem is that I need to be able to call
this method through web services.
As I recall, only services can be directly exported for web services call.
My question is can I really create a service element inside the services.xml
using engine="java" and invoke 'createOrder'?
Looking at all service definition with java classes, all the method takes in
DispatchContext dctx,Map context. Does this mean I need to create a wrapper
or some sort? how would I go about doing this because there a lot of uri
mappings inside controller.xml that has java method
(HttpServletRequest,HttpServletResponse) for the event trigger instead of a
service call trigger. 

thank you, jeremy
-- 
View this message in context: http://www.nabble.com/two-ofbiz-application-communicating-through-SOAP-tf4173169.html#a11986350
Sent from the OFBiz - User mailing list archive at Nabble.com.


RE: two ofbiz application communicating through SOAP

Posted by "Akotaobi, Uche" <Uc...@xerox.com>.
[snip]

[jin1212]
> I can see issues right now with database syncing. For example,
> different products with same id. Unless there is a way to identify
> the global productId from a clientProductId, I just dont see how
> this can be done. 

[Uche Akotaobi] 
> How about making a "MachineInfo" entity with a "machineId"
> field and "run-install-seed"ing it with a different GUID for
> each server?  Then you could have your services return that
> ID, combine it with an existing field to make a new primary
> key, or whatever.  The possibilities are limitless.

[Pradeep Chaudhary]
> You can set unique "sequenced-id-prefix" value for the delegator in
> entityengine.xml for each ofbiz instance. This will ensure that the all the
> sequence generated from a ofbiz instance have prefix attached to primary
> key. This makes is easy to identify between two different instances.


Very interesting!  I can see uses for this--thanks for the tip.

-- 
Uche O. Akotaobi
Workflow Engineer
Xerox Corporation
701 South Aviation Blvd., ESAE-116
El Segundo, CA  90245
Phone (310) 333-2403  Internal 8*823-2403
Fax (310) 333-8419
Uche.Akotaobi@xerox.com

XEROX
Technology.  Document Management.  Consulting Services

www.xerox.com

Re: two ofbiz application communicating through SOAP

Posted by Pradeep Chaudhary <pr...@gmail.com>.
You can set unique "sequenced-id-prefix" value for the delegator in
entityengine.xml for each ofbiz instance. This will ensure that the
all the sequence generated from a ofbiz instance have prefix attached
to primary key. This makes is easy to identify between two different
instances.

Pradeep

On 7/31/07, Akotaobi, Uche <Uc...@xerox.com> wrote:
> [jin1212]
>
> > Hello,
> >    Our company has the need to physically have
> > accounting/manufacturing portion of Ofbiz on server A, and
> > e-commerce apps on server B,C,D .. etc.
> > The servers will have to communicate through web services
> > call provided all relevent services have 'export' flag set to
> > true. I would like to know if this is even possible
>
>
> Sure--Apache Axis makes web service calls pretty simple.
>
>
> > because Ofbiz uses a a single database for all its applications.
>
>
> That's easily changed in framework/entity/config/entityengine.xml.  Either add a new <group-map/> with a different name and then refer to that group for all of your custom entities or edit the existing org.ofbiz group-map.  Change the "localderby" to something else like "localpostgres", add the JDBC driver to framework/entity/lib/jdbc, and edit the JDBC connection settings.
>
> http://ofbiz.apache.org/docs/entity.html
>
>
> > I can see issues right now with database syncing. For example, different
> > products with same id. Unless there is a way to identify the global
> > productId from a clientProductId, I just dont see how this can be done.
>
>
> How about making a "MachineInfo" entity with a "machineId" field and "run-install-seed"ing it with a different GUID for each server?  Then you could have your services return that ID, combine it with an existing field to make a new primary key, or whatever.  The possibilities are limitless.
>
>
> --
> Uche O. Akotaobi
> Workflow Engineer
> Xerox Corporation
> 701 South Aviation Blvd., ESAE-116
> El Segundo, CA  90245
> Phone (310) 333-2403  Internal 8*823-2403
> Fax (310) 333-8419
> Uche.Akotaobi@xerox.com
>
> XEROX
> Technology.  Document Management.  Consulting Services
>
> www.xerox.com
>

RE: two ofbiz application communicating through SOAP

Posted by "Akotaobi, Uche" <Uc...@xerox.com>.
[jin1212]

> Hello,
>    Our company has the need to physically have
> accounting/manufacturing portion of Ofbiz on server A, and
> e-commerce apps on server B,C,D .. etc.
> The servers will have to communicate through web services
> call provided all relevent services have 'export' flag set to
> true. I would like to know if this is even possible 


Sure--Apache Axis makes web service calls pretty simple.


> because Ofbiz uses a a single database for all its applications.


That's easily changed in framework/entity/config/entityengine.xml.  Either add a new <group-map/> with a different name and then refer to that group for all of your custom entities or edit the existing org.ofbiz group-map.  Change the "localderby" to something else like "localpostgres", add the JDBC driver to framework/entity/lib/jdbc, and edit the JDBC connection settings.

http://ofbiz.apache.org/docs/entity.html


> I can see issues right now with database syncing. For example, different
> products with same id. Unless there is a way to identify the global
> productId from a clientProductId, I just dont see how this can be done.


How about making a "MachineInfo" entity with a "machineId" field and "run-install-seed"ing it with a different GUID for each server?  Then you could have your services return that ID, combine it with an existing field to make a new primary key, or whatever.  The possibilities are limitless.


-- 
Uche O. Akotaobi
Workflow Engineer
Xerox Corporation
701 South Aviation Blvd., ESAE-116
El Segundo, CA  90245
Phone (310) 333-2403  Internal 8*823-2403
Fax (310) 333-8419
Uche.Akotaobi@xerox.com

XEROX
Technology.  Document Management.  Consulting Services

www.xerox.com