A valid empty jboss.xml
alesj Nov 30, 2007 1:43 PMWhat should an empty jboss.xml look like, in order not to fail in the following way:
This is my empty jboss.xml:
<?xml version="1.0"?> <jboss xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd" version="3.0"> </jboss>
And the output:
C:\Java\jdk1.5.0_11\bin\java -Didea.launcher.port=7532 -Didea.launcher.bin.path=C:\JetBrains\IDEA6.0\bin -Dfile.encoding=UTF-8 -classpath ... com.intellij.rt.execution.application.AppMain Test 19:34:04,484 ERROR [AbstractController] Error installing to Parse: name=vfsfile:/C:/projects/seam/examples/booking/resources/META-INF/jboss.xml state=Not Installed mode=Manual requiredState=Parse org.jboss.deployers.spi.DeploymentException: The xml is not well formed! at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:134) at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:86) at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:223) at org.jboss.deployment.JBossEjbParsingDeployer.createMetaData(JBossEjbParsingDeployer.java:104) at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:199) at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:162) at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169) at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:853) at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:794) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411) at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:498) at org.jboss.deployers.plugins.main.MainDeployerImpl.deploy(MainDeployerImpl.java:386) at Test.main(Test.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): *** DEPLOYMENTS MISSING DEPLOYERS: Name vfsfile:/C:/projects/seam/examples/booking/resources/META-INF/jboss.xml *** DEPLOYMENTS IN ERROR: Name -> Error vfsfile:/C:/projects/seam/examples/booking/resources/META-INF/jboss.xml -> org.jboss.deployers.spi.DeploymentException: The xml is not well formed! *** CONTEXTS IN ERROR: Name -> Error vfsfile:/C:/projects/seam/examples/booking/resources/META-INF/jboss.xml -> org.jboss.deployers.spi.DeploymentException: The xml is not well formed! at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:696) at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:642) at org.jboss.deployers.plugins.main.MainDeployerImpl.deploy(MainDeployerImpl.java:399) at Test.main(Test.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Process finished with exit code 0
My test:
import java.io.File; import java.util.Collections; import org.jboss.dependency.plugins.AbstractController; import org.jboss.deployers.client.spi.Deployment; import org.jboss.deployers.plugins.deployers.DeployersImpl; import org.jboss.deployers.plugins.main.MainDeployerImpl; import org.jboss.deployers.spi.deployer.Deployer; import org.jboss.deployers.spi.deployer.Deployers; import org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl; import org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder; import org.jboss.deployers.vfs.plugins.structure.file.FileStructure; import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory; import org.jboss.deployers.vfs.spi.structure.StructureDeployer; import org.jboss.deployment.JBossEjbParsingDeployer; import org.jboss.virtual.VFS; import org.jboss.virtual.VirtualFile; /** * @author alesj */ public class Test { public static void main(String[] args) { try { VFSDeploymentFactory factory = VFSDeploymentFactory.getInstance(); File file = new File("C:\\projects\\seam\\examples\\booking\\resources\\META-INF\\jboss.xml"); VirtualFile vf = VFS.getRoot(file.toURL()); Deployment deployment = factory.createVFSDeployment(vf); MainDeployerImpl main = new MainDeployerImpl(); StructureDeployer fileDeployer = new FileStructure(); VFSStructuralDeployersImpl structuralDeployers = new VFSStructuralDeployersImpl(Collections.singleton(fileDeployer)); structuralDeployers.setStructureBuilder(new VFSStructureBuilder()); main.setStructuralDeployers(structuralDeployers); JBossEjbParsingDeployer jbossParser = new JBossEjbParsingDeployer(); jbossParser.setUseSchemaValidation(false); jbossParser.setUseValidation(false); Deployer deployer = jbossParser; Deployers deployers = new DeployersImpl(new AbstractController(), Collections.singleton(deployer)); main.setDeployers(deployers); main.deploy(deployment); } catch (Exception e) { e.printStackTrace(); } } }
Otherwise I get a NPE, since there is no JBossMetaData instance in the attachments for Ejb3Deployer.
[testng] Caused by: java.lang.NullPointerException [testng] at org.jboss.ejb3.interceptor.InterceptorInfoRepository.initialise(InterceptorInfoRepository.java:101) [testng] at org.jboss.ejb3.Ejb3HandlerFactory$DDFactory.<init>(Ejb3HandlerFactory.java:48) [testng] at org.jboss.ejb3.Ejb3HandlerFactory.getInstance(Ejb3HandlerFactory.java:83) [testng] at org.jboss.ejb3.Ejb3Deployment.deploy(Ejb3Deployment.java:431) [testng] at org.jboss.ejb3.Ejb3Deployment.create(Ejb3Deployment.java:375) [testng] at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:145)