appc and ejbc 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.
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.
Previously, 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> stanza 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 it using the EJB using the alternative descriptor file.
For more information about the <alt-dd> element, see module" in Developing WebLogic Server Applications.
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 13-1 lists appc command line options
Option
Description
-advanced Prints advanced usage options. -altappdd Designates an alternative J2EE application deployment descriptor. -altwlsappdd Designates an alternative WebLogic Server application deployment descriptor. -basicClientJar Does not include deployment descriptors in client JARs generated for EJBs. -classpath <path> Selects the classpath to use during compilation. -compiler <javac> Selects the Java compiler to use. -convertDD Attempts to update deployment descriptors to the latest version. -deprecation Warns about deprecated calls. -forceGeneration Forces generation of EJB and JSP classes. Without this flag, the classes may not be regenerated (if determined to be unnecessary). -g Compiles debugging information into a class file. -idl Generates IDL for EJB remote interfaces. -idlDirectory <dir> Specifies the directory where IDL files will be created (default: target directory or JAR) -idlFactories Generates factory methods for valuetypes. -idlMethodSignatures <> Specifies the method signatures used to trigger IDL code generation. -idlNoAbstractInterfaces Does not generate abstract interfaces and methods/attributes that contain them. -idlNoValueTypes Does not generate valuetypes and the methods/attributes that contain them. -idlOrbix Generates IDL somewhat compatible with Orbix 2000 2.0 C++. -idlOverwrite Always overwrites existing IDL files. -idlVerbose Displays verbose information for IDL generation. -idlVisibroker Generates IDL somewhat compatible with Visibroker 4.5 C++. -iiop Generates CORBA stubs for EJBs. -iiopDirectory <dir> Specifies the directory where IIOP stub files will be written (default: target directory or JAR) -J<option> Passes flags through to Java runtime. -keepgenerated Keeps the generated .java files. -lineNumbers Adds line numbers to generated class files to aid in debugging. -normi Passes flags through to Symantec's sj. -nowarn Compiles without warnings. -O Compiles with optimization on. -output <file> Specifies an alternate output archive or directory. If not set, the output is placed in the source archive or directory. Prints the standard usage message. -verbose Compiles with verbose output. -version Prints appc version information.
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.
ejbc
Note: ejbc is deprecated. Use appc instead. See appc.
Use the weblogic.ejbc tool for generating and compiling EJB container classes. If you compile JAR files for deployment into the EJB container, use weblogic.ejbc to generate the container classes.
weblogic.ejbc does the following:
- Places the EJB classes, interfaces, and XML deployment descriptor files in a specified JAR file.
- Checks all EJB classes and interfaces for compliance with the EJB specification.
- Generates WebLogic Server container classes for the EJBs.
- Runs each EJB container class through the RMI compiler to create client-side dynamic proxies and server-side byte code.
Note: ejbc accepts both JAR files and exploded directories as input.
If you specify an output JAR file, ejbc places all generated files into the JAR file.
By default, ejbc uses javac as a compiler. For faster performance, specify a different compiler (such as Symantec's sj) using the -compiler flag or via the Administration Console. See Configuring Compiler Options.
Although versions of the WebLogic-specific XML deployment descriptor files are published on or web site for your convenience, an internal version is shipped with the product for use by weblogic.ejbc.
For the location of the public version of weblogic-ejb-jar.xml and weblogic-cmp-jar.xml, see Document Type Definitions and DOCTYPE Header Information.
Advantages of Using ejbc
The ejbc tool offers the following benefits:
- It is easy to identify and correct errors ejbc produces.
If an error occurs while running ejbc from the command line, ejbc 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 ejbc 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.
ejbc Syntax
prompt> java weblogic.ejbc [options] <source directory or jar file><target directory or jar file>Note: If you output to a JAR file, the output JAR name must be different from the input JAR name.
ejbc Arguments
Argument
Description
<source directory or jar file> Specifies the exploded source directory or JAR file containing the compiled EJB classes, interfaces, and XML deployment files. <target directory or jar file> Specifies the destination JAR file or deployment directory in which ejbc places the output JAR. If you specify an output JAR file, ejbc places the original EJB classes, interfaces, and XML deployment files in the JAR, as well as the new container classes that ejbc generates.
ejbc Options