Glassfish Admin Console은 java.lang을 던집니다.JDBC 풀을 생성할 때 잘못된 상태 예외가 발생
일주일 전에 Glassfish 4.1을 다운받았습니다.지퍼를 달았습니다.관리 콘솔을 사용하여 JDBC 연결 풀을 생성하려고 시도했습니다.다음 오류 메시지 수신:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
그 오류에 대해 많은 언급이 있습니다.많은 사람들이 "Asked & Answered"라고 선언했습니다.그러나 그 문제에 대한 언급은 어디에서도 찾을 수 없습니다. 해결책은 말할 것도 없고요.
하지만 만약 누군가 그것이 해결되었다고 생각한다면, 이 문제에 대한 해결책에 대한 링크를 반드시 추가해 주시기 바랍니다.새 설치.콘솔을 열고 새 JDBC Connection Pool을 만들어 보기만 했습니다.
Resource Type: javax.sql.DataSource.
Vendor: MySql.
mysql-connector-java-5.1.35.jar를 \glassfish4\glassfish\lib에 저장했습니다.
여기 제가 찾은 해결책 중 가장 가까운 것이 있습니다.근데 GF v3.
드디어 domain.xml에서 실제 문제를 추적했습니다.
-Dorg.glassfish.web.rfc2109_cookie_names_enforced=false
asupgrade든 domain.xml다에서 .방금 domain.xml jvm-options에 추가했고 GF v3는 예상대로 작동합니다.됨:
<jvm-options>-Dorg.glassfish.web.rfc2109_cookie_names_enforced=false</jvm-options>
해봤어요.작동하지 않았습니다. (스타트업 시 사용하는 domain.xml GF에 추천 라인이 추가됨을 보여주기 위해 GF 로그 항목을 붙여넣었습니다.)
이전 v3 서버에서 domain.xml을 찾아 새로운 v4에서 사용해 보았습니다.그게 안 먹혔어.
배포된 앱으로 받는 것과 관련된 내 예외 메시지와 관련된 다른 질문들(대부분 서블릿).하지만 이것은 깨끗한 서버입니다.설치된 앱이 없습니다.
GF 버그로 이 예외를 작업하는 사람들의 링크를 많이 찾았습니다.대부분은 좀 전에.아무도 해결책을 주지 않았고 심지어 그들이 그것을 해결해본 적이 없다고 말했습니다.
누가 해결책을 제시해 줄 수 있습니까?
아니면 오라클이 고치지 않기로 한 버그인지 알려주세요.
아니면 어디서 도움을 받을 수 있는지 아세요?정말 죽겠네요.
여기에 도움이 되는 경우에는 클린 스타트업을 위한 GF 로그(domain.xml에 jvm insert 포함)가 있습니다.또한 JDBC Connection Pool을 생성하기 위해 실패한 시도에 대한 스택 추적도 표시합니다.
참고: [INFO] 로그 항목을 모두 꺼냈습니다.그리고 남은 [WARNING] 항목들은 모두 그리즐리와 관련된 것으로 보입니다.
[2015-10-09T12:21:24.598-1000] [] [INFO] [NCLS-GFLAUNCHER-00005] [javax.enterprise.launcher] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1444429284598] [levelValue: 800] [[
JVM invocation command line:
C:\Program Files\Java\jdk1.8.0_05\bin\java.exe
-cp
C:/glassfish4/glassfish/modules/glassfish.jar
-XX:+UnlockDiagnosticVMOptions
-XX:NewRatio=2
-XX:MaxPermSize=192m
-Xmx512m
-javaagent:C:/glassfish4/glassfish/lib/monitor/flashlight-agent.jar
-client
-Djavax.xml.accessExternalSchema=all
-Djavax.net.ssl.trustStore=C:\glassfish4\glassfish\domains\domain1/config/cacerts.jks
-Djdk.corba.allowOutputStreamSubclass=true
-Dfelix.fileinstall.dir=C:\glassfish4\glassfish/modules/autostart/
-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.shell.remote,org.apache.felix.fileinstall
-Dcom.sun.aas.installRoot=C:\glassfish4\glassfish
-Dfelix.fileinstall.poll=5000
-Djava.endorsed.dirs=C:\glassfish4\glassfish/modules/endorsed;C:\glassfish4\glassfish/lib/endorsed
-Djava.security.policy=C:\glassfish4\glassfish\domains\domain1/config/server.policy
-Dosgi.shell.telnet.maxconn=1
-Dfelix.fileinstall.bundles.startTransient=true
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
-Dfelix.fileinstall.log.level=2
-Dorg.glassfish.web.rfc2109_cookie_names_enforced=false
-Djavax.net.ssl.keyStore=C:\glassfish4\glassfish\domains\domain1/config/keystore.jks
-Djava.security.auth.login.config=C:\glassfish4\glassfish\domains\domain1/config/login.conf
-Dfelix.fileinstall.disableConfigSave=false
-Dfelix.fileinstall.bundles.new.start=true
-Dcom.sun.aas.instanceRoot=C:\glassfish4\glassfish\domains\domain1
-Dosgi.shell.telnet.port=6666
-Dgosh.args=--nointeractive
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as
-Dosgi.shell.telnet.ip=127.0.0.1
-DANTLR_USE_DIRECT_CLASS_LOADING=true
-Djava.awt.headless=true
-Dcom.ctc.wstx.returnNullForDefaultNamespace=true
-Djava.ext.dirs=C:\Program Files\Java\jdk1.8.0_05/lib/ext;C:\Program Files\Java\jdk1.8.0_05/jre/lib/ext;C:\glassfish4\glassfish\domains\domain1/lib/ext
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-Djava.library.path=C:/glassfish4/glassfish/lib;C:/ProgramData/Oracle/Java/javapath;C:/Windows/Sun/Java/bin;C:/Windows/System32;C:/Windows;C:/glassfish4/glassfish/ C:/Program Files/Dell/Dell Data Protection/Drivers/TSS/bin;C:/Program Files (x86)/Common Files/Intuit/QBPOSSDKRuntime;C:/Program Files (x86)/QuickTime/QTSystem;D:/Bulletproof/bpMySql/bin;C:/glassfish4/glassfish
com.sun.enterprise.glassfish.bootstrap.ASMain
-upgrade
false
-domaindir
C:/glassfish4/glassfish/domains/domain1
-read-stdin
true
-asadmin-args
--host,,,localhost,,,--port,,,4848,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=true,,,start-domain,,,--verbose=false,,,--watchdog=false,,,--debug=false,,,--domaindir,,,C:\glassfish4\glassfish\domains,,,domain1
-domainname
domain1
-instancename
server
-type
DAS
-verbose
false
-asadmin-classpath
C:/glassfish4/glassfish/lib/client/appserver-cli.jar
-debug
false
-asadmin-classname
com.sun.enterprise.admin.cli.AdminMain]]
[2015-10-09T12:21:27.864-1000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.config.Utils] [tid: _ThreadID=17 _ThreadName=RunLevelControllerThread-1444429287050] [timeMillis: 1444429287864] [levelValue: 900] [[
Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn]]
[2015-10-09T12:21:27.962-1000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.config.Utils] [tid: _ThreadID=17 _ThreadName=RunLevelControllerThread-1444429287050] [timeMillis: 1444429287962] [levelValue: 900] [[
Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn]]
[2015-10-09T12:21:27.970-1000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.config.Utils] [tid: _ThreadID=17 _ThreadName=RunLevelControllerThread-1444429287050] [timeMillis: 1444429287970] [levelValue: 900] [[
Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=admin-listener, realClassName=org.glassfish.grizzly.http2.Http2AddOn]]
[2015-10-09T12:21:31.120-1000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.config.Utils] [tid: _ThreadID=75 _ThreadName=pool-13-thread-1] [timeMillis: 1444429291120] [levelValue: 900] [[
Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn]]
[2015-10-09T12:21:31.135-1000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.config.Utils] [tid: _ThreadID=75 _ThreadName=pool-13-thread-1] [timeMillis: 1444429291135] [levelValue: 900] [[
Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn]]
[2015-10-09T12:21:37.895-1000] [glassfish 4.1] [WARNING] [] [javax.enterprise.system.container.web.com.sun.web.security] [tid: _ThreadID=48 _ThreadName=admin-listener(4)] [timeMillis: 1444429297895] [levelValue: 900] [[
Context path from ServletContext: differs from path from bundle: /]]
[2015-10-09T12:22:46.963-1000] [glassfish 4.1] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=48 _ThreadName=admin-listener(4)] [timeMillis: 1444429366963] [levelValue: 900] [[
StandardWrapperValve[FacesServlet]: Servlet.service() for servlet FacesServlet threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:777)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:224)
at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:851)
at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:504)
at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:79)
at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:642)
at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:120)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:202)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:127)
at javax.faces.context.ExceptionHandlerWrapper.handle(ExceptionHandlerWrapper.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:233)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:678)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)
]]
다음 JIRA 티켓에 의거:
이것은 아직 해결되지 않은 문제입니다.오라클이 Glassfish에 대한 상업적 지원을 포기한 이후로 그런 것을 기대할 수 있지만, 그러한 기본적인 기능이 작동하지 않는 것은 여전히 끔찍합니다.
하지만 정말 절박하다면, 아주 끔찍한 해결책이 있습니다.Glassfish는 Java DB를 다루는 경우가 아니라면 필요하지 않을 수도 있는 사전 정의된 JDBC 풀 DerbyPool을 제공합니다.데이터 소스 클래스 이름을 다음으로 변경하여 자유롭게 편집할 수 있습니다.com.mysql.jdbc.jdbc2.optional.MysqlDataSource
MySQL Server 인스턴스를 가리키도록 추가 속성을 조정합니다.이 해킹을 수행하기 전에 MySQL 커넥터를 Glassfish의 lib 폴더에 넣었는지 확인합니다.
갱신하다
방금 패치가 완료된 Glassfish 버전이 있다는 것을 알게 되었습니다. 그것은 Payara라고 불리며 여기서 다운로드할 수 있습니다.문서에 따르면, 이 복제품은 GlassFish 4.1 복제품이며, 패치가 적용되었으며 커뮤니티에서 추가로 개발되었습니다.
방금 4.1.1에서 4.1.0으로 롤백했습니다. 잘 작동합니다.글래스피쉬의 정말 미친 벌레 :(
동일한 문제가 발생하면 다른 애플리케이션 서버를 선택할 수 있습니다. 이를 통해 다른 애플리케이션 서버를 선택할 수 있습니다. jboss, wildfly, ...
어쨌든 여기 또 다른 해결 방법이 있습니다. 이 xml의 평화를 domain.xml(다른 연결 풀 사이)에 붙여넣기만 하면 됩니다.
<jdbc-connection-pool connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" name="mysql_dbuser_rootPool">
<property name="URL" value="jdbc:mysql://localhost:3306/ANYDB?zeroDateTimeBehavior=convertToNull"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="Password" value="THEPASS"></property>
<property name="portNumber" value="3306"></property>
<property name="databaseName" value="ANYDB"></property>
<property name="User" value="THEUSER"></property>
<property name="serverName" value="localhost"></property>
</jdbc-connection-pool>
도움이 되길 바랍니다.
다음과 같이 JDBC 연결을 관리할 수 있습니다.asadmin
유틸리티 - AFAIK 관리자 GUI는 단지 그것의 프론트엔드에 불과합니다.
asadmin
사용법은 여기에 설명되어 있습니다. https://docs.oracle.com/cd/E26576_01/doc.312/e24928/jdbc.htm#GSADG00420
예.
asadmin> create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.ClientDataSource \\
--restype javax.sql.XADataSource \\
--property portNumber=1527:password=APP:user=APP:serverName=localhost:databaseName=sun-appserv-samples:connectionAttributes=\;create\\=true \\
sample_derby_pool
건배.
이것은 벌레였습니다.GlassFish 4.1.1
형제들이 언급되었듯이, 그러나 그것은 해결되었습니다.GlassFish 4.1.2
당신은 여기서 간단히 다운로드 할 수 있고, 더 많은 정보는 여기에서.
Oracle을 사용하는 경우 glassfish/domains/domain1/config/domain.xml 파일을 편집하면 됩니다.리소스 태그를 찾아 다음을 추가합니다.
<jdbc-connection-pool datasource-classname="oracle.jdbc.pool.OracleConnectionPoolDataSource" name="MyPoolName" res-type="javax.sql.ConnectionPoolDataSource">
<property name="User" value="UserName"></property>
<property name="URL" value="jdbc:oracle:thin:@//localhost:1521/xe"></property>
<property name="Password" value="UserPassword"></property>
</jdbc-connection-pool>
lib에서 jdbc 드라이버를 복사하고 URL을 필요에 맞게 변경하는 것을 잊지 마세요.다음으로 glassfish를 시작하려면 JDBC Connection Pools로 이동하여 연결 상태를 테스트합니다.
과제에서 이 작업을 수행해야 했는데 JDBC 리소스(Java 런타임 예외) 및 JDBC Connection 풀(java.lang)을 생성하는 동안 동일한 오류가 발생했습니다.잘못된 상태 예외: 이 응답에 대해 getOutputStream()이(가) 이미 호출되었습니다.)
나중에 이것이 버그 버전이라는 것을 알게 되었고 교수님이 이미 Glassfish 4.1을 사용하라고 말씀하셨고 모든 것이 잘 작동했습니다.굳이 4.1.1.을 사용하지 않으셔도 된다면 4.1.을 사용해주시기 바랍니다.
야간 빌드에는 수정사항이 포함되어 있습니다!Oracle에서 야간 빌드를 다운로드할 수 있습니다.
언급URL : https://stackoverflow.com/questions/33048435/glassfish-admin-console-throws-java-lang-illegalstateexception-when-creating-jdb
'programing' 카테고리의 다른 글
MySQL Views - 사용 시기 및 사용하지 않는 시기 (0) | 2023.10.23 |
---|---|
jquery In()이 .html()과 함께 작동하지 않는 이유는 무엇입니까? (0) | 2023.10.23 |
Angularjs 필터 네거티브 (0) | 2023.10.23 |
CSS 센터 디스플레이 인라인 블록? (0) | 2023.10.23 |
+=, |=, &= 등이 원자입니까? (0) | 2023.10.23 |