Sharing code between services requires careful thought and planning to avoid too much coupling between service impls. I have seen both extremes - no sharing and uber sharing (i.e., too much).
So my advice is do share code just don’t overdo it.
Some modules that I found useful (in hindsight) to share by user interfaces and various services are:
- schema (code that validates XML against schema)
- persistence (consistent way of accessing database)
- msgmapper (mapping XML to POJOs that you pass into business logic)
- domainmodel (the most important package/module that most apps don't have)