Hallo Dominik,
die erste Frage wäre: Was genau willst du mit deinem Service machen?
Je nachdem was du machen willst ist eine Service_Komponente oder aber evtl. auch ein Client-Service die richtige Option.
Eine WebApp, klingt als Komponente für einen klassischen Service auf den ersten Blick nicht unbedingt als der besten Ort für einen Service.
Ich definiere meine Services immer wie folgt in der module.xml:
<service>
<name>bIT - import service</name>
<description>Service to import products
into FirstSpirit.</description>
<class>de.bit.firstspirit.xx.ProductImporterFSServiceImpl</class>
<resources>
<resource name="bITResources" scope="module">lib/${project.artifactId}-${project.version}-jar-with-dependencies.jar</resource>
</resources>
</service>
Zusätzlich definiere ich Executables, wie folgt:
<public>
<name>bIT- import executable</name>
<description>Executable class to start a productImport.</description>
<class>de.bit.firstspirit.xx.executables.Executable</class>
</public>
Das Executable rufe ich dann wie folgt aus einem Skript auf:
#!executable-class
de.bit.firstspirit.xx.executables.Executable
Innerhalb meines Executables hole ich mir dann den Service und starte ihn:
/**
* Initializes the executable with data out of the given parameters.
*
* @param params Parameters that are used to initializes the executable.
*/
void init(final Map<String, Object> params) {
this.paramMap = params;
this.context = (ScheduleContext) params.get(FS_SCRIPT_CONTEXT);
this.servicesBroker = this.context
.requestSpecialist(ServicesBroker.TYPE);
}
...
@Override public Object execute(final Map<String, Object> params) {
this.init(params);
final ProductImporterFSService service = this.servicesBroker
.getService(ProductImporterFSService.class);
service.import();
}
return null;
}
Evtl. hilft dir der Ansatz ja weiter...
Grüße
Sandro