Programming WebLogic Enterprise JavaBeans
appc Reference
appc
The appc compiler generates and compiles the classes needed to deploy EJBs and JSPs to WebLogic Server. It also validates the deployment descriptors for compliance with the current specifications at both the individual module level and the application level. The application-level checks include checks between the application-level deployment descriptors and the individual modules as well as validation checks across the modules.
If you are compiling an application that contains Kodo persistence units, the appc complier also runs the Kodo enhancer. The Kodo enhancer performs post-processing of the bytecode generated by the Java compiler, adding the necessary fields and methods to implement the required persistence features. This bytecode modification perfectly preserves the line numbers in stack traces and is compatible with Java debuggers. For more information about using Kodo, see “Using Oracle Kodo With WebLogic Server” in Programming WebLogic Enterprise JavaBean, Version 3.0.
When running appc against an application that contains both Kodo and non-Kodo managed persistence units, kodc will be run against the Kodo-managed persistence units only.
Advantages of Using appc
The appc tool offers the following benefits:
- The flexibility of compiling an entire application, rather than compiling individual modules separately and combining them into an EAR after the fact.
- Validation checks across all modules and validation of application-level deployment descriptors against the various modules, because WebLogic Server has access to all modules during EAR compilation.
Without appc, a user wanting to compile all modules within an EAR file had to extract the individual components of an EAR and manually execute the appropriate compiler (jspc or ejbc) to prepare the module for deployment. appc automates this process and makes additional pre-deployment validation checks not previously possible.
- It is easy to identify and correct errors appc produces.
If an error occurs while running appc from the command line, appc exits with an error message.
By contrast, if you defer compilation to the time of deployment and a compilation error occurs, the server fails the deployment and goes on with its work. To determine why deployment failed, examine the server output, fix the problem and then redeploy.
- By running appc prior to deployment, you potentially reduce the number of time a bean is compiled.
For example, if you deploy a JAR file to a cluster of 3 servers, the JAR file is copied to each of the three servers for deployment. If the JAR file wasn't precompiled, each of the three servers will have to compile the file during deployment.
appc Syntax
Use the following syntax to run appc:
prompt>java weblogic.appc [options] <ear, jar, or war file or directory>
Designating Alternative Deployment Descriptors
J2EE allows you to designate an alternative J2EE deployment descriptor for an EJB or Web application module, using the <alt-dd> element in the <module> element of application.xml.
You can use <alt-dd> to specify an alternate deployment descriptor only for the J2EE deployment descriptors, web.xml and ejb-jar.xml. As of WebLogic Server 8.1 SP01, if you specify an alternative deployment descriptor for a module in alt-dd, appc will compile the EJB using the alternative descriptor file.
For more information about the <alt-dd> element, see “module” in “Enterprise Application Deployment Descriptor Elements” in Developing Applications with WebLogic Server.
In WebLogic Server 8.1 SP01and later, you can use appc command line options to designate alternative J2EE and WebLogic Server deployment descriptors for an application, as shown below:
- -altappdd <file>—Use this option to specify the full path and file name of an alternative J2EE deployment descriptor file, application.xml.
- -altwlsappdd <file>—Use this option to specify the full path and file name of an alternative WebLogic application deployment descriptor, weblogic-application.xml
appc Options
Table D-1 lists appc command line options.
appc and EJBs
weblogic.appc performs the following EJB-related functions:
- Generates WebLogic Server container classes for the EJBs.
- Checks all EJB classes and interfaces for compliance with the EJB specification.
- Checks deployment descriptors for potential configuration problems. For example, if there is a cmp field declared in ejb-jar.xml, appc verifies that the column is mapped in the weblogic-cmp-rdbms.xml deployment descriptor.
- Runs each EJB container class through the RMI compiler to create RMI descriptors necessary to dynamically generate stubs and skeletons.
By default, appc uses javac as a compiler. For faster performance, specify a different compiler (such as Symantec's sj) using the command-line -compiler flag or via the Administration Console. See Configuring Compiler Options.
For the location of the public version of weblogic-ejb-jar.xml, see weblogic-ejb-jar.xml Deployment Descriptor Reference. For the location of the public version of weblogic-cmp-jar.xml, see weblogic-cmp-jar.xml Deployment Descriptor Reference.