try
{
// Get the deployment model factory
SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
WSFRuntimeLocator locator = spiProvider.getSPI(WSFRuntimeLocator.class);
WSFRuntime runtime = locator.locateRuntime("EndpointAPIRuntime");
DeploymentModelFactory depModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
// Create/Setup the deployment
Deployment dep = depModelFactory.newDeployment("endpoint-deployment", implClass.getClassLoader());
dep.setType(Deployment.DeploymentType.JAXWS_JSE);
dep.setRuntimeClassLoader(dep.getInitialClassLoader());
// TODO: Hack, should this become another DeploymentAspect?
((ArchiveDeployment)dep).setRootFile(new ResourceLoaderAdapter());
// Create/Setup the service
Service service = dep.getService();
service.setContextRoot(context.getContextRoot());
// Create/Setup the endpoint
org.jboss.wsf.spi.deployment.Endpoint ep = depModelFactory.newEndpoint(implClass.getName());
ep.setShortName(implClass.getName()+"-Endpoint");
ep.setURLPattern("/*");
service.addEndpoint(ep);
// Deploy using deployment aspects
runtime.create(dep);
runtime.start(dep);
}
catch (RuntimeException rte)
{
throw rte;
}