小编Rob*_*ert的帖子

Wildfly并自动重新连接到数据库

我有一个客户端,一个服务器和一个数据库.客户端通过EJB远程接口与服务器通信.作为服务器 - 我使用Wildfly 8.2.0.作为数据库 - 我使用MySQL.服务器通过JPA/Hibernate与MySQL通信.当我关闭MySQL服务器时 - 当然,Wildfly会引发异常.但是当我再次打开MySQL时 - Wildfly仍会抛出相同的错误.我要关闭Wildfly,然后将Wildfly重新连接到数据库.

如何在Wildfly中设置自动重新连接?

我尝试在连接URL中设置自动重新连接:jdbc:mysql://localhost/db?autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF8我尝试添加到我使用的standalone-full.xml文件,这一行:<check-valid-connection-sql>select 1</check-valid-connection-sql>,但两个解决方案都不起作用.

独立-full.xml:

<!-- ... -->
<datasource jta="true" jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-ccm="true">
    <connection-url>jdbc:mysql://localhost/db?autoReconnect=true&amp;amp;useUnicode=yes&amp;amp;characterEncoding=UTF8</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver>mysqlDriver</driver>
    <security>
        <user-name>user</user-name>
        <password>***</password>
    </security>
    <validation>
        <check-valid-connection-sql>select 1</check-valid-connection-sql>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
    </validation>
    <timeout>
        <set-tx-query-timeout>false</set-tx-query-timeout>
        <blocking-timeout-millis>0</blocking-timeout-millis>
        <idle-timeout-minutes>0</idle-timeout-minutes>
        <query-timeout>0</query-timeout>
        <use-try-lock>0</use-try-lock>
        <allocation-retry>0</allocation-retry>
        <allocation-retry-wait-millis>0</allocation-retry-wait-millis>
    </timeout>
    <statement>
        <share-prepared-statements>false</share-prepared-statements>
    </statement>
</datasource>
<drivers>
    <driver name="mysqlDriver" module="com.mysql">
        <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
    </driver>
</drivers>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

java mysql jboss ejb wildfly

28
推荐指数
3
解决办法
2万
查看次数

uploadFile.getInputstream() 抛出 java.nio.file.NoSuchFileException

我使用 JSF 2.2 和 Primefaces 5.3。我想将上传的文件保存在磁盘上。下面你可以看到我是如何尝试做到这一点的。当我按下一个Send按钮时,我得到一个java.nio.file.NoSuchFileException异常(在我的帖子末尾我还放了一个完整的堆栈跟踪):

错误 [stderr](默认任务 24)java.nio.file.NoSuchFileException: [PATH]\Wildfly_10\WILDFLY_HOME\standalone\tmp\MasterProject.war\undertow1357918758070690245upload

当我跟踪堆栈跟踪时,我看到异常是由这一行引起的(我认为是这样):

try(InputStream input = uploadFile.getInputstream()){

这对我来说很奇怪。我可以获取上传文件的名称 (by uploadFile.getFileName()),但我无法获取文件的大小 (by uploadFile.getSize()),也无法获取InputStream(by uploadFile.getInputstream())。在这两种情况下,我都得到了NoSuchFileException例外。

附加信息:我必须上传大文件(即 200 MB 或更多)。当然,当我上传小文件时,我得到了同样的例外。

您知道为什么我会遇到此异常以及如何解决此问题吗?

这是我上传文件的页面的一部分:

<h:form>
    <p:growl id="messages" showDetail="true" />
    <p:panelGrid id="panel" columns="2" styleClass="ui-noborder" columnClasses="rightalign,leftalign">

        <p:outputLabel for="file" value="File:" />
        <p:fileUpload id="file" fileLimit="1"
                    fileUploadListener="#{dataController.handleFileUpload}" 
                    mode="advanced" dragDropSupport="true" sizeLimit="1000000000" 
                    uploadLabel="Upload" cancelLabel="Delete" allowTypes="/(\.|\/)(csv|binetflow)$/" />                                             
        <p:commandButton id="buttonSend" value="Send" 
                        action="#{dataController.send()}" update="messages"/>                       

    </p:panelGrid>                                              
</h:form>
Run Code Online (Sandbox Code Playgroud)

这是 CDI bean,它是上述页面的控制器:

@Named
@ViewScoped
public class DataController implements Serializable …
Run Code Online (Sandbox Code Playgroud)

jsf file-upload primefaces wildfly

4
推荐指数
1
解决办法
4602
查看次数

标签 统计

wildfly ×2

ejb ×1

file-upload ×1

java ×1

jboss ×1

jsf ×1

mysql ×1

primefaces ×1