.war files packaged as RPM for JBOSS/Tomcat - best practices?
Hi,
I'm planing to package WAR files as RPMs. Current deployment process just doesn't work for us and my idea of fixing it would be to create a new Custom Channel in RHN Satellite and publish my WAR files through that Channel. Currently (as we are trying to win some time) I'm managing some config files through Satellite so configs are not a big problem. We don't keep them in WAR for many reasons but that's different story.
Anyway, has anyone packaged WAR as RPMs? Do you do hot deployment or do you force JBOSS/Tomcat to restart? Is that After RPM installation or as a part of it? What's your SPEC file looks like? Can I please see it as an example? Do you check in your SPEC for JBOSS/Java/Oracle client or just install WAR? Any stories to tell? Any major problems?
Should I consider something else?
I can build RPMs no problem but I'd like to hear what's the best way of doing this with WAR files and JBOSS (some Tomcats are still runnig here but they will be phased out soon-ish so I'm not too worried about them).
unzip -v gives CRC info of each file in a zip(in my case .EAR) file.
# unzip -v my-application.ear
Archive: my-application.ear
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
197981 Defl:N 183708 7%... (1 Reply)
dears
i am trying to install the autoconf-2.63-1.aix6.1.noarch.rpm but its shows the below error message .
P700_dev/svn/dependencies>rpm -i autoconf-2.63-1.aix6.1.noarch.rpm
error: failed dependencies:
m4 is needed by autoconf-2.63-1
P700_dev/svn/dependencies> (6 Replies)
Hi,
We have upgrade tomcat from 5.0.20 to 7.0.33 and made changes to server.xml file according to newer version.. how ever the upgrade went fine and now i am unable to deploy application remotely.. it is giving 403 access denied error.. we have seperate appbase directory mentioned in server.xml..... (0 Replies)
How to make RPM not write to RPM database if RPM fails to deploy?
IE I create an rpm spec file that contains the following
if
then
exit 1
fi
My rpm will fail at deployment, but if I do rpm -qa , I can see the rpm in the rpm db (3 Replies)
I was experimenting with ZoneMinder CCTV software on Suse 10.0. After some major configuartion problems, all caused by me I eventually decided on a complete clean re-install of Suse 10.
I downloaded the new opensuse 10.1 DVD with includes all 5 of the OpenSuse10.1 CDs and the Additional Addon... (2 Replies)
wsdeploy(1M) Application Server Utility wsdeploy(1M)NAME
wsdeploy - reads a WAR file and the jaxrpc-ri.xml file and generates another WAR file that is ready for deployment
SYNOPSIS
wsdeploy -o input_WAR_file options
Use the wsdeploy command to take a WAR file which does not have implementation specific server side tie classes to generate a deployable
WAR file that can be deployed on the application server. wsdeploy internally runs wscompile with the -gen:server option. The wscompile com-
mand generates classes and a WSDL file which wsdeploy includes in the generated WAR file.
Generally, you don't have to run wsdeploy because the functions it performs are done automatically when you deploy a WAR with deploytool or
asadmin.
-classpath path location of the input class files.
-keep keep temporary files.
-tmpdir temporary directory to use.
-o output WAR file required; location of the generated WAR file.
-source version generates code for the specified JAX-RPC SI version. Supported version are: 1.0.1, 1.0.3, and 1.1 (default).
-verbose outputs messages about what the compiler is doing.
-version prints version information.
INPUT WAR FILE
The input WAR file for wsdeploy will typically have the following structure:
META-INF/MANIFEST.MF
WEB-INF/classes/hello/HelloIF.class
WEB-INF/classes/hello/HelloImpl.class
WEB-INF/jaxrpc-ri.xml
WEB-INF/web.xml
Where: HelloIF is the service endpoint interface, and HelloImpl is the class thatimplements the interface. The web.xml file is tghe deploy-
ment descriptor of a web component.
jaxrpc-ri.xml FILE
The following is a simple HelloWorld service.
<xml version="1.0" encoding="UTF-8"?>
<webServices>
xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"
version="1.0"
targetNamespaceBase="http://com.test/wsdl"
typeNamespaceBase="http://com.test/types"
urlPatternBase="/ws">
<endpoint
name="MyHello"
displayName="HelloWorld Service"
description="A simple web service"
wsdl="/WEB-INF/<wsdlname>
interface="hello.HelloIF"
implementation="hello.HelloImpl"/>
<endpointMapping
endpointName="MyHello"
urlPattern="/hello"/>
</webServices>
The webServices() element must contain one or more endpoint() elements. The interface and implementation attriutes of endpoint() specify
the service's interface and iimplementation class. The endpointMapping() element associates the service port with the part of the endpoint
URL path that follows the urlPatternBase().
NAMESPACE MAPPINGS
Here is a schema type name example:
schemaType="ns1:SampleType"
xmlns:ns1="http://echoservice.org/types"
When generating a Java type from a schema type, wscompile gets the classname from the local part of the schema type name. To specify the
package name of the generated Java classes, you define a mapping between the schema type namespace and the package name. You define this
mapping by adding a <namespaceMappingRegistry> element to the config.xml file. For example:
<service>
...
<namespaceMappingRegistry>
<namespaceMapping
namespace="http://echoservice.org/types"
packageName="echoservice.org.types"/>
</namespaceMappingRegistry>
.....
</service>
You can also map namespaces in the oppisite direction, from schema types to Java types. In this case, the generated schema types are taken
from the package that the type comes from.
HANDLERS
A handler accesses a SOAP message that represents an RPC request or response. A handler class must implement the javax.xml.rpc.handler
interface. Because it accesses a SOAP message, a handler can manipulate the message with the APIs of the javax.xml.soap.package().
A handler chain is a list of handlers. You may specify one handler chain for the client and one for the server. On the client, you include
the handlerChains() element in the jaxrpc-ri.xml file. On the server, you include this element in the config.xml file. Here is an example
of the handlerChains() element in the config.xml:
<handlerChains>
<chain runAt="server"
roles=
"http://acme.org/auditing
"http://acme.org/morphing"
xmlns:ns1="http://foo/foo-1">
<handler className="acme.MyHandler"
headers ="ns1:foo ns1:bar"/>
<property
name="property" value="xyz"/>
</handler>
</chain>
</handlerChains>
For more information on handlers, see the SOAP message Handlers chapter of the JAX-PRC specifications.
wscompile(1M)Sun Java System Application Server March 2004 wsdeploy(1M)