com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_link3' is unknown.

Deploying and Debugging

After creating your C-Apps and deployable archives, you are ready to deploy them to one or more Carbon servers (that is, servers for products based on WSO2 Carbon). You can then test them and debug your applications and artifacts as needed.

Deploying a C-App using the management console

To deploy the CAR file for the C-App to a Carbon server, start the server, log in to the management console for that product, go to Application -> Add, and browse for the CAR file that you have created.

Once you click Upload, it will ask you to Refresh the browser. Once you refresh, you will see that the CAR file has been deployed.  

Deploying a C-App to a running server inside Eclipse

Before you deploy the created C-App project, you have to choose the artifacts you need to deploy. For that, double click on the pom.xml and select artifacts you need to deploy and save the changes.

New Server Runtime

Go to Servers view, right click and select New -> Server .

New Server Runtime

Select the relevant version of the server under the WSO2 category. For example, WSO2 Carbon 3.2 based server.

To see the relevant version of the Carbon based server, refer to the  Release Matrix .

New Server Runtime

If you have not added WSO2 Server instances before, you will need to specify location of the downloaded WSO2 Server instance.

New Server Runtime

Now you will see your version of the server (for example WSO2 Carbon 3.2 based server) added to the Server Runtime Environments. Then click OK.

New Server Runtime

You can change ports if you want. If the default ports are not used by any other application, you can keep them as they are. After setting the ports click Next.

New Server Runtime

Add the C-App project and click Finish.

New Server Runtime

Now you will see newly added server is listed in the Servers view. Right click on the WSO2 Carbon x.x.x based server at localhost and select Start from the menu.

New Server Runtime

Redeploying a C-App to a running server inside Eclipse

After you have deployed your C-App to a running server inside Eclipse, you may want to change the content of your C-App. In that case you do not need to remove the deployed C-App from the server and deploy again to the server. Instead you can re-deploy an already deployed C-App.

Deploy the C-App project according to the instructions given above and then do the necessary changes to your C-App project.

Open the Servers view in Eclipse using Window => Show View => Servers.

Click on the expandable icon of the Server you are running inside Eclipse. (This expandable icons available only if you have deployed a project in that server)

Right click on the project and Select Re-deploy option from the popup menu.

Redeploy C-App project.

Then you will see that your Eclipse console is updated and you can notice that your C-App project is deployed again.

Deploying a C-App to multiple servers using the Maven plug-in

The WSO2 CAR Deploy plug-in for Maven allows you to generate the CAR file for a C-App and then deploy it (or undeploy it) on multiple local and remote Carbon servers, including StratosLive. To use this plug-in, you add it to the pom.xml file for your C-App and then use the mvn clean deploy command to generate and deploy the CAR.

Adding the plug-in to the POM file

  1. Under the C-App you want to deploy, double-click the pom.xml file to open it in the editor.
  2. Click the Source tab and navigate to the maven-car-deploy-plugin under <build> -> <plugins>.
  3. Modify the maven-car-deploy-plugin properties as follows:
    1. Under <carbonServers>, create one <CarbonServer> for each Carbon server where you want to deploy the CAR file.
    2. Specify the following properties for each Carbon server:
      • If you are using a custom certificate with your Carbon server, import the public key of the custom certificate to your trust store, and then set the <trustStorePath>, <trustStorePassword>, and <trustStoreType> properties to the location, password, and type of your trust store.
      • Set the <serverUrl>, <userName>, and <password> properties to the URL (such as https://localhost:9443 ), user name, and password for the Carbon server.
      • In the <operation> element, specify whether to deploy or undeploy the CAR file for this Carbon server.
  4. In the <properties> section at the end of the POM file, do the following:
    1. Add the following line to ensure that the CAR will be deployed:
      <maven.car.deploy.skip>false</maven.car.deploy.skip>
    2. If you want to deploy the CAR file to a remote Maven repository in addition to the Carbon servers, add the following line:
      <maven.deploy.skip>false</maven.deploy.skip>  
      Note: You will be able to override both of these settings when you run the Maven command.
  5. Save the file.

You are now ready to generate and deploy the CAR file for this C-App.

Generating and deploying the CAR file

You now run the mvn clean deploy command to generate the CAR file and deploy it to the Carbon servers in a single step. You can add parameters to the command to override the configuration. For example, to deploy the CAR file to the Carbon servers but not to the remote Maven repository, add the -Dmaven.deploy.skip=true parameter, as follows:

mvn clean deploy -Dmaven.deploy.skip=true

If you want to deploy to the remote Maven repository but not the Carbon servers, add the -Dmaven.car.deploy.skip=true parameter, as follows:

mvn clean deploy -Dmaven.car.deploy.skip=true

You can also skip deployment to both the remote repository AND the Carbon servers:

mvn clean deploy -Dmaven.deploy.skip=true -Dmaven.car.deploy.skip=true

Debugging your application

Suppose I develop a simple Apache Axis2 Service and I want to debug my service when I invoke it. Let's see how we can achieve this using WSO2 Developer Studio.

First, I create a simple GreetingService.

Redeploy C-App project.

Then I create a Carbon Application Project to group it.

Redeploy C-App project.

Now I'm going to add a WSO2 Application Server instance to my Eclipse workspace. Steps to add a Carbon Server is described in Deploy C-App to a running Server inside Eclipse section. After adding the server, I'm going to start the server in the debug mode.

Redeploy C-App project.

After server being successfully started, add the GreetingServiceCApp project.

Redeploy C-App project.

When your application being deployed successfully, you will see following messages in your console.

Redeploy C-App project.

Now go to your web browser and check whether your application being deployed under Web Services Listing page.

Redeploy C-App project.

Now click on Try This Service option at the right hand corner. Once you click it, it will go to a separate page where it lists all the operations related to the web service you choose.

Redeploy C-App project.

Before invoke the service, go back to your Eclipse Workspace and put a debug point inside your method.

Redeploy C-App project.

Now go back to your web console and invoke the service. Once you invoke the service, it will ask whether to change in to the Debug Perspective in Eclipse.

Redeploy C-App project.

Click Yes. If your Eclipse instance could not find the relavent source for the class, it will show a blank page as below.

Redeploy C-App project.

Click on Edit Source Lookup Path....

Redeploy C-App project.

Click on Add button and select Java Project.

Redeploy C-App project.

Select GreetingService project from the list and click OK.

Redeploy C-App project.

Now you will see the source being attached and you will see the debug point is being hit.

Redeploy C-App project.

In the similar manner, you can debug any application which will be associated with Java Sources.

com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.