Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Java-SCA-2.x
-
None
Description
Looks like we are currently visiting all interfaces from a implementation (see ServiceProcessor.java) and checking if these interfaces are annotated in order to create services.
// scan interfaces for remotable
Set<Class<?>> interfaces = getAllInterfaces(clazz);
for (Class<?> interfaze : interfaces) {
if (interfaze.isAnnotationPresent(Remotable.class)
interfaze.isAnnotationPresent(WebService.class) |
---|
interfaze.isAnnotationPresent(Callback.class) ) Unknown macro: { Service service; try {
service = createService(interfaze);
} catch (InvalidInterfaceException e) {
throw new IntrospectionException(e);
} type.getServices().add(service); }
} |
OASIS Java CAA specs now introduce the possibility to mark a interface remotable via the @remotable attribute in the SCDL and we should consider this when creating services... currently we are just throwing an exception
Caused by: org.oasisopen.sca.ServiceRuntimeException: [] - Service not found for component service (missing @Remotable annotation?): Component = Catalog Service = Catalog
at org.apache.tuscany.sca.node.impl.NodeFactoryImpl.analyzeProblems(NodeFactoryImpl.java:285)
at org.apache.tuscany.sca.node.impl.NodeFactoryImpl.configureNode(NodeFactoryImpl.java:561)
at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:120)
... 23 more