Как решить проблему: исключение java.io.FileNotFoundException при развертывании приложения jee в Wildfly 25

#java #deployment #wildfly

Вопрос:

Я получаю ошибку ниже при развертывании приложения в Wildfly:

{«WFLYCTL0080: Отказавшие службы» => {«jboss.persistenceunit.»funmusic-back.war#productPU»» =>> «jakarta.persistence.Исключение PersistenceException: [PersistenceUnit: productPU] Не удается создать объект сеанса гибернации, вызванный: jakarta.persistence.Исключение PersistenceException: [PersistenceUnit: productPU] Не удается создать сеанс гибернации, вызванный: org.hibernate.tool.schema.spi.SchemaManagementException: Не удается открыть указанный целевой файл сценария для записи : productDrop.ddl, вызванный: java.io.FileNotFoundException: productDrop.ddl (отказано в разрешении)»}}

Хитрый момент, с которым я столкнулся, заключается в том, что, когда я запускаю wildfly с standalone.sh, все в порядке. Однако, когда я запускаю его с помощью systemctl start wildfly, возникает эта проблема. Мне интересно, связана ли это проблема с доменным режимом и автономным режимом Wildfly, но я не смог распознать недостающую часть, которую я должен изучить, чтобы решить проблему. Моя операционная система использует CentOS 7, а версия Wildfly-25.

Ниже приведен persistence.xml для вашей справки:

 <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
         version="2.2">
<!-- transaction-type is the type of transactions used by EntityManagers from this persistence unit. -->
<persistence-unit name="productPU" transaction-type="JTA">
    <properties>
        <property name ="javax.persistence.schema-generation.database.action" value="drop-and-create"></property>
        <property name ="javax.persistence.schema-generation.scripts.action" value="drop-and-create"></property>
        <property name ="javax.persistence.schema-generation.scripts.create-target" value="productCreate.ddl"></property>
        <property name ="javax.persistence.schema-generation.scripts.drop-target" value="productDrop.ddl"></property>
    </properties>
</persistence-unit>
 

Я получаю одну сущность@, которая представляет собой очень простое POJO с несколькими полями внутри. Поскольку это просто, я собираюсь пропустить это здесь.

Я был бы признателен, если бы вы могли указать на причину проблемы и дать мне некоторое представление о ней. Кроме того, более ценной была бы ссылка на документ с указанным разделом.

Спасибо!

Комментарии:

1. Я предполагаю, что при запуске вручную вы используете другого пользователя, поэтому в разрешении отказано

2. @ScaryWombat вы правы, я использую другого пользователя, чем пользователь, добавленный в соответствии с руководством, которое я нахожу в: linuxize.com/post/how-to-install-wildfly-on-centos-7 . Однако я все еще не знаю, как запустить его вручную другим пользователем… Большое вам спасибо 🙂

3. взгляните на serverfault.com/questions/841099/…