[jboss-as7-dev] AS7 7.1.3 - CLI Operations when working on Domain mode & JNDI issue
Emanuel Muckenhuber
emuckenh at redhat.com
Wed Jul 24 09:37:24 EDT 2013
On 07/23/2013 07:14 PM, George Vagenas wrote:
> For the Mobicent SIP Servlet project that is build on top of AS7, we
> have some CLI operations to list available SIP Servlet application, to
> gracefuly stop the context and the server. These operations work fine
> when the server runs in standalone mode using the command:
> /subsystem=sip:listSipAppplications
>
> But when running in domain mode the command should be (sip subsystem
> belongs to the default profile) :
> /profile=default/subsystem=sip:listSipAppplications
> But then we get an NPE because the context that the operation executes
> is not a normal server:
I assume you mean the SipApplicationDispatcher is null in the domain?
This would be expected, since the domain controller does not start any
subsystem services.
> @Override
> public void execute(OperationContext context, ModelNode operation)
> throws OperationFailedException {
>
> ModelNode result = context.getResult();
> result.get("AppName").setEmptyList();
> if(context.isNormalServer()){
> SipApplicationDispatcher sipApplicationDispatcher =
> StaticServiceHolder.sipStandardService.getSipApplicationDispatcher();
> Iterator<SipContext> sipApps =
> sipApplicationDispatcher.findSipApplications();
>
> while(sipApps.hasNext()){
> result.get("AppName").add(sipApps.next().getApplicationName());
> }
> } else {
> throw new OperationFailedException(new ModelNode().set("Operation
> available only a Server"));
> }
> context.completeStep();
> }
>
> Is there a way we can specify a server node that the operation should
> execute?
>
No, not at the subsystem level. If you just allow the operation to
complete in the domain, the domain controller should push out this
operation to each server associated with this profile.
> Also, in standalone mode, we gracefuly shutdown the server and the
> contexts running using the following:
> protected void shutdownServer() throws MalformedObjectNameException,
> NullPointerException, InstanceNotFoundException, MBeanException,
> ReflectionException, IOException{
> MBeanServerConnection mbeanServerConnection =
> ManagementFactory.getPlatformMBeanServer();
> ObjectName mbeanName = new ObjectName("jboss.as:management-root=server");
> Object[] args = {false};
> String[] sigs = {"java.lang.Boolean"};
> mbeanServerConnection.invoke(mbeanName, "shutdown", args, sigs);
> }
>
> And this one fails when server runs in domain mode.
>
> Any ideas?
Again assuming you are trying to execute this operation on the server
directly - this is expected since the lifecycle is controlled by the
host-controller and the model on the server is set to read-only.
Emanuel
More information about the jboss-as7-dev
mailing list