What does "exploded configuration" in axis2 means? - configuration

I'm reading this Application Server Specific Configuration Guide, http://axis.apache.org/axis2/java/core/docs/app_server.html, for Axis2. What does "exploded configuration" means?

I think it just refers to exploded vs .war type deployment. For an example tomcat automatically explode (unpack) your war file once you deploy it. AFAIU this "exploded configuration" jargon has appeared due to option in Jboss appserver. [1]
AFAIR there is no specific configuration called exploded conf when it comes to axis2 (i'm talking about things such as axis2.xml/etc)
[1] http://community.jboss.org/wiki/ExplodedDeployment
HTH

Related

Can I install modules to my wildfly through cli in domain mode?

First question is supported, to manage add module from one point to all host?
If I run my wildfly domain mode I can't run this
[domain#127.0.0.1:9999 /] module add --name=com.oracle.jdbc --resources=/path/to/ojdbc6.jar --dependencies=javax.api,javax.transaction.api
answer:
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).
The module operation doesn't work in domain mode because it copies the files locally.
One solution also is to use galleon to provision your modules
I found a very good blog:
https://in.relation.to/2017/05/29/creating-patches-for-wildfly/
This works. If you will add a module to modules/com/.. then in the projekt you have to put modules/system/layers/base/com/..
So you can manage the differences of wildfly-s.

How do I correctly start using .readthedocs.yml

I have a basic ReadTheDocs repository. As per the advice of the build page, I sought to use a .readthedocs.yml to configure it:
Configure your documentation builds! Adding a .readthedocs.yml file to your project is the recommended way to configure your documentation builds. You can declare dependencies, set up submodules, and many other great features.
I added a basic .readthedocs.yml:
version: 2
sphinx:
builder: dirhtml
fail_on_warning: true
and got a build failure:
Problem in your project's configuration. Invalid "sphinx.builder": .readthedocs.yml: Your project is configured as "Sphinx Html" in your admin dashboard, but your "sphinx.builder" key does not match.
This was surprising as it seemed contrary to the guidance in the admin dashboard at https://readthedocs.org/dashboard/PROJECTNAME/advanced/ which led me to assume that I could set whatever I liked in the admin dashboard, but it would be overridden by my .readthedocs.yml (which is the behaviour I expected and wanted):
These settings can be configured using a configuration file. That's the recommended way to set up your project. Settings in the configuration file override the settings listed here.
I updated the setting in the admin dashboard to match the .readthedocs.yml and then got a build error:
Sphinx error:
master file /home/docs/checkouts/readthedocs.org/user_builds/PROJECT_NAME/checkouts/latest/source/contents.rst not found
which looks like https://github.com/readthedocs/readthedocs.org/issues/2569 (RTD not finding Sphinx configuration) - but it's not clear why that's happening because prior to adding .readthedocs.yml, the project built just fine.
I'm struggling to model what's actually going on here:
The config file isn't acting as an "overlay" / "override" onto the web settings - as per the first error, some forms of disagreement are a build failure
It's almost like if the config file exists, the web config is ignored - this would explain the contents.rst issue arising, but this isn't consistent with the first error
Adding a python.install entry to .readthedocs.yml eventually got the site building, but it's still not clear to me if I'm generally doing the right thing, and/or how successful future config changes will be.
The reason you're getting the error is that the sphinx version you're using locally doesn't match with the version readthedocs is using at the time you initiated the build process.
See here: You can use a requirements.txt file to use the same version of sphinx you use locally. I had the same issue. I've solved it by simply adding my version Sphinx==3.1.2
Also, I added a .readthedocs.yml file in my project directory where docs/ resides, pointing to where the conf.py because
I was using an extension sphinxcontrib.napoleon which readthedocs build process fails to recognize.
Wanted readthedocsbuild process to use a specific version on Sphinx.
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 1
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: docs/requirements.txt
a
and added all the dependencies needed to generate the documentation in docs/requirement.txt
Babel==2.8.0
imagesize==1.2.0
readme-renderer==26.0
Sphinx==3.1.2
sphinx-argparse==0.2.5
sphinx-rtd-theme==0.5.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-images==0.9.2
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-napoleon==0.7
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.4

unable to configure through carbon.xml

I am trying to configure wso2 by modifing its configuration file named "carbon.xml", but no matter what change I do to "carbon.xml", even adding a single "white space" or modifying a comment it's enough for the wso2 server to reset carbon.xml file to it´s original "out of the box" state.
I tryied to protect the file carbon.xml by dropping write permissions, but in this case wso2 server refuses to start, it aborts execution and displays an error complaining that it was not able to "write new configuration" !!!
Does any one know how to solve this?
I found the answer, In wso2 version 5.9 there is a new centralized configuration file, named "deployment.toml". Configurations must be done in this file and then wso2 propagates changes to the respective configurations files, like carbon.xml or catalina-server.xml, for example.
If you delete "deployment.toml" wso2 will fallback to previos behavior.
With the new 4.5.0 carbon-kernel release, all WSO2 products such as APIM 3.0.0, IS 5.9.0 introduced a new config model. According to the new config model, there is a centralized configuration file (deployment.toml) where users add the configurations, then those configurations will be added to the respective .xml files.
This new config model was introduced in order to simplify the configuration (previously there were a lot of configuration files) and to increase the user experience. Please follow this documentation to refer further information on this new config model
Related documents:
https://wso2.com/blogs/thesource/2019/10/simplifying-configuration-with-WSO2-identity-server
https://is.docs.wso2.com/en/next/references/new-configuration-model/
If you have a deployment.toml file, the changes directly made into the xml files will be overiden during the server startup. Deleting the deployment.toml file will use the old config model. But it is not a recommended approach.

How can I define an arbitrary file outside my web application to configure log4j2

My web application will be deployed to Weblogic application servers on Windows and Linux/Unix in different environments. The log file location, appenders and log levels will vary between the different deployments and we would like to be able to change the logging configuration during runtime (by exchanging the config file), so I cannot embed a log4j2.xml (or whatever other config file) into my deployment. And since I'm running on Application servers I cannot control, I've got no chance to add environment variables to point to another configuration Location.
Currently, my log4j2.xml resides in the classpath of my application and is being packaged into my war file. Is there any way to tell Log4J2 to use a configuration file e. g. relative to the application root (like Log4J's configureAndWatch(fileLocation) method)?
I found lots of examples of how to configure Log4J2, but everything I found about the config file location points to the applications class path.
I finally found a solution for my problem. I added a file named
log4j2.component.properties
to my project (in src/main/resources). This file contains a property pointing to the location of my log4j2 configuration file:
log4j.configurationFile=.//path//on//my//application//server//someLog4j2ConfigFile.xml
This causes log4j2 to read that file and configure itself from it's content.

WS02: error No artifacts found to be deployed in this server. Ignoring Carbon Application

Following process outlined here to create a axis service from a pojo:
Webinar: Building Applications with Carbon Studio for On-Premise and the Cloud.
I create the axis services as described in the webinar.
I did a mvn package sucessfully.
I start the WS02 ESB in eclipse sucessfully.
But when I deploy my app to the WS02 ESB, I see the following in the console:
INFO - ApplicationManager Deploying Carbon Application : MyCarbonApp-1.0.0.car...
WARN - ApplicationManager No artifacts found to be deployed in this server. Ignoring
Carbon Application : MyCarbonApp-1.0.0.car
and the service does not appear on the ESB console's web services list.
When I look at the file called MyAxisService.service I see the following:
#Contains the information about the axis2 service generation information from the eclipse workspace
#Fri May 25 15:53:09 NZST 2012
Class-name=com.unisys.comms.esbselection.MyAxisService
Type=FROM_CLASS
Service-name=MyAxisService
Projects=MyCarbonApp
What does this warning mean?
What can I do to further investigate the cause?
Is there some obvious step I've missed when creating the app?
Thanks in advance.
Please follow these steps to solve this issue.
Go to carbon.xml file locate in ....\wso2esb-4.9.0\repository\conf
Add new server role to xml elemet
EnterpriseServiceBus
ApplicationServer
Restart the server
This error means the Server Roles of the C-App Artifacts found in your Carbon Application Archive (CAR), does not match the Server Role of the ESB.
Reason is, Axis2 Web Services are by default has the Server Role of "ApplicationServer". Hence if you deploy it on the WSO2 AS, it will deploy without any problem. But in this case, you have tried to Deploy it the WSO2 ESB. Since the WSO2 ESB has the Server Role "EnterpriseServiceBus" and your Axis2 web service has the Server Role "ApplicationServer", they do not match each other. Result is the C-App deployer will ignore the C-App.
To solve this, you need to change the Server Role of your Axis2 Web Service. In order to do that, follow the steps below.
Go the C-App project you created and browse to the Axis2 Service Artifact folder in the "Artifacts" folder of the C-App.
Inside this Axis2 Service Project, you will see a file called "Artifact.xml". Open this file by double clicking on the file.
Once you double click on the file, file will be opened in the Artifact editor. Scroll the Editor down a bit.
There you will see a Drop Down next to a Label called "Server Role".
Select "EnterpriseServiceBus" option from the Drop down list and click on "Save All" button on the Eclipse Tool bar.
Go to the Servers view in Carbon Studio and click on the expand icon infront of the Carbon Server (WSO2 ESB in this case)
Once you expand the Server, you will be able to see the Server Module (C-App project) you deployed in the ESB.
Right Click on the C-App module under the ESB Server and Select "Redeploy".
Now you will see that Carbon Studio redeploy the C-App project and if you followed all the steps above correctly, your Axis2 Web Service will be deployed in the ESB.
Hope this helps!!
Thanks.
/Harshana