URI при использовании domain.xml во встроенном glassfish - PullRequest
0 голосов
/ 06 июня 2011

Я встраиваю приложение Java EE 5, используя GlassFish 3.0.1. Я уже могу развернуть его (при использовании без определенной конфигурации), но при попытке запустить сервер с доменом .xml (в основном информация JAAS), я получаю эту ошибку:

java.lang.IllegalArgumentException: URI is not absolute

Мой код такой (ошибка указывает на последнюю строку):

Server.Builder builder = new Server.Builder("ipc");
EmbeddedFileSystem.Builder efsb = new EmbeddedFileSystem.Builder();
File domainDir = new File( "domains/ipc-domain" );
File domainXML = new File( domainDir.getAbsoluteFile(), "config/domain.xml" );
efsb.instanceRoot( domainDir.getAbsoluteFile() );
efsb.configurationFile( domainXML.getAbsoluteFile() );
EmbeddedFileSystem efs = efsb.build();
builder.embeddedFileSystem(efs);
//Trying to set variable used at domain.xml (blind shot) 
Properties props = new Properties();
props.setProperty( "com.sun.aas.instanceRoot" , domainDir.toURI().toString());
Server server = builder.build( props );

Мой домен.xml (определенная часть) имеет это:

<domain log-root="${com.sun.aas.instanceRoot}/logs" application-root="${com.sun.aas.instanceRoot}/applications" version="10.0">
  <system-applications/>

  <applications>
    <application context-root="/IPC" location="${com.sun.aas.instanceRoot}/applications/IPC/" name="IPC" object-type="user">
      <property name="keepSessions" value="false"></property>
      <property name="defaultAppName" value="IPC"></property>
      <module name="IPC">
        <engine sniffer="ejb"></engine>
        <engine sniffer="security"></engine>
        <engine sniffer="jpa"></engine>
        <engine sniffer="web"></engine>
      </module>
    </application>
  </applications>

  <resources>
    <jdbc-connection-pool pool-resize-quantity="1" datasource-classname="org.apache.derby.jdbc.ClientDataSource" max-pool-size="2" res-type="javax.sql.DataSource" steady-pool-size="1" name="ipc-pool">
      <property name="PortNumber" value="1527"></property>
      <property name="ServerName" value="0.0.0.0"></property>
      <property name="User" value="app"></property>
      <property name="Password" value="root"></property>
      <property name="DatabaseName" value="IPC"></property>
    </jdbc-connection-pool>
    <jdbc-resource pool-name="ipc-pool" jndi-name="jdbc/IPC"></jdbc-resource>
  </resources>

Я уже пытался изменить части, связанные с переменной "$ {com.sun.aas.instanceRoot}", но затем у меня есть небольшие вариации ошибки URI. Любое понимание?

...