Weblogic 8.1 SP 6 throws Read channel closed when sending SOAP message
Hi,
I am using Weblogic8.1 SP6 & Axis1 to send SOAP message through RPC call using SSL. This is working intermittently.
I use WLSSLAdapter to set up the SSL, and some properties I set:
System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
System.setProperty("weblogic.webservice.verbose", "true");
In case of error, the server throws this:
java.io.IOException: Read channel closed
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Sourc
e)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown S
ource)
at com.certicom.tls.record.ReadHandler.read(Unknown Source)
at com.certicom.tls.record.ReadHandler.read(Unknown Source)
at com.certicom.tls.record.ReadHandler.read(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.closeWriteHandler(Unknown S
ource)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.close(Unknown Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Sourc
e)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown S
ource)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
AT java.io.FilterOutputStream.write(FilterOutputStream.java:80)
at weblogic.webservice.binding.soap.HttpClientBinding.writeToStream(HttpClientB
inding.java:430)
at weblogic.webservice.binding.soap.HttpClientBinding.send(HttpClientBinding.ja
va:219)
at weblogic.webservice.core.handler.ClientHandler.handleRequest(ClientHandler.j
ava:37)
at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.jav
a:143)
at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:231)
at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:471)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:566)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:419)
Before sending message, application will first retrieve WSDL from the target. This is always success.
I need to know how to fix this problem.
Any help is appreciated. Thanks.
Alvin
Hi,
Even I am facing the same issue could any body help me out to solve this issue.
Similar Messages
-
BEA-380000: General runtime error: Read channel closed - intermittent
I am encountering this error code intermittently. My production has been live from past 20 months and I see this error very recently and its like once a week.
I doubt if this has something to do with the network and as this is very generic error(BEA-380000) I am not able to find any pointers on this error.
My environment
Solaris 10,Weblogic 10.3(Not clustered)
fault="<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-382500</con:errorCode>
<con:reason>OSB Service Callout action received SOAP Fault response</con:reason>
<con:details>
<con1:ReceivedFaultDetail xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
<con1:faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Server</con1:faultcode>
<con1:faultstring>BEA-380000: General runtime error: Read channel closed</con1:faultstring>
<con1:detail>
<con:fault>
<con:errorCode>BEA-380000</con:errorCode>
<con:reason>General runtime error: Read channel closed</con:reason>
<con:location>
<con:node>RouteNode1</con:node>
<con:path>request-pipeline</con:path>
</con:location>
</con:fault>
</con1:detail>
</con1:ReceivedFaultDetail>
</con:details>
<con:location>
<con:node>PipelinePairNode1</con:node>
<con:pipeline>PipelinePairNode1_request</con:pipeline>
<con:stage>stage1</con:stage>
<con:path>request-pipeline</con:path>
</con:location>
</con:fault>"
Cheers
SridharMatt,
How are you invoking local proxy from HTTP proxy (using route node or service callout)? Is local proxy calling another proxy/business service? Do you have fault handling implemented?
Can you also check server log to figure out any additional error information (like stacktrace)?
Regards,
Anuj -
Verification of recvr file channel configuration without sending a message
Hi,
We need to test the configuration((such as directory, filename etc.,) of a receiver file channel. As we all know, in the case of sender channel, since it will keep polling the directory configured, if there is any incorrect directory, it will be indicated in the run time work bench, EVEN IF THE MESSAGE HAS NOt GONE THROUGH THE SENDER FILE CHANNEL. However in the case of receiver file channels, UNLESS THE MESSAGE GOES THROUGH THE RECEIVER FILE CHANNEL, we won't be able to identify the incorrect directory configuration.
Thus, please let me know as to how to identify the incorrect directory configuration in the case of RECEIVER FILE CHANNELS, without sending any message through the same.
I appreciate your early response.
Regards
VenkatHi,
AFAIK you can check whether the channel is Started/ Stopped (in RWB), check whether correct parameters are filled in the CC (by visual inspection)....but unless and until you test the scenario you may not know whether the CC is properly working or not....somethimes there is a case that you are asked to pay for each and every message that is sent using XI...is this your case?....if not then you can go ahead and test it end-to-end as Dharamveer said.....
If you get the solution (as you need) then dont forget to share with us
Regards,
Abhishek. -
Waveform chart slow to read samples AIs when sending AOs
Hi all,
I am using labview to sample AI signals and send AO signals sampling at 4k with 400 samples to read... The AOs are triggered using buttons on the frontal (E-stim or M-Stim).. When the E-stim button is pushed it will generate a square-wave signal with the freq and pulse characteristics as selected on frontal panel (default is 1 pulse at 50Hz)... These are pulses are used to control a muscle stimulator... So the idea is to be able to send whatever signal I want and have the stimulator deliver that same stimulus to the muscle (e.g. 10 pulses at 50Hz, or 5 pulses at 100Hz, etc etc).. To check the timing of this, I connected the AO to the "trigger in" on the stimulator and the "trigger out" on the stimulator to an AI channel... The pulses are coming through from the stimulator as expected...
However, when I send the AO pulses labview seems to "freeze" or "suspend" until all output pulses are sent... This is very apparent with a high number of pulses (e.g. 10 pulses at 50Hz)... That is, the waveform chart freezes/stops scrolling until all AO signals are sent, then the chart updates all the pulses in one hit and continuous displaying data; rathe than have each pulse displayed individually...Why concern is that AI during the AO phase may be losted ot not sampled properly...
Can anyone provide me with an explanation for this behaviour? I am using a LV2010SP1 and a USB-6218 BNC multifuction DAQ.
Thanks!
Jack
Attachments:
TMS2.vi 304 KB
TMS2.vi 304 KBHello Jack,
Reviewed the code.
Remember The way labview executes code, Labview executes code by flow of information meaning that it is going to wait untill the neccesary items are ready before executing the next part of the code.
For example If we want to make a simple add function for "x" and "y" labview is going to wait untill both inputs are ready for operation before operating and outputing "z" as a result.
It does it the same way everytime. I took the time and rearranged the code so we can understand it better, The execution happens from left to right, from top to bottom.
If we refer to the image, the arrows show us the flow of information of the VI, The DAQ assitant, the filtering of the signal and the Triggering is done before you actually output data through device1 analog output.
The code is expected to work that way cause it waits untill done acquiring with the DAQ asistant to start generating an output.
I can think of different options,
-You can modify this VI so that the output takes place regardless of the input data
-Having two different vis where you can set the read and write at different rates, using a functional global variable.
-Using a producer/consumer architecture.
This is an example that I think might be useful.
Using Producer/Consumer Architecture for DAQmx Read and Write to File
Hope this was helpful,
Luis Martinez.
Applications Engineer.
National Instruments.
Attachments:
Flow.JPG 146 KB -
Reading attachment in SOAP message with ABAP mapping
I am searching an ABAP code to read attachment in sender SOAP message..
I am using PI 7.3, I can read by java mapping but I get another error after reading the attachment.. So I try to abap mapping..
That's it..
Thanx ..Hello Mark,
1. My Soap Sender Adapter, I checked the Keep Attachment option
2. I am getting the WSDL file from the SOAP Sender Agreement.. it is like http(s)://host:port/XISOAPAdapter/MessageServlet?channel=p:s:c? as you said.
I used the user-defined function, it works when <inc:Include href="cid:test.jpg" xmlns:inc="http://www.w3.org/2004/08/xop/include" /> is deleted in the message.
If the coming message includes <inc:Include href="cid:test.jpg" xmlns:inc="http://www.w3.org/2004/08/xop/include" />,
the <null> error occurs.
Thanx for your reply.. -
Sending mails via conversion channel according to sender
Hi
I need to run a script on some mails sent by specific users.
I am using the conversion channel, but in that way all mails using that channel are using the script.
I need that only mails from specific users will use that script.
What is the best method to do so?
Thanks
ShlomiHi
I followed the document, but had some problems.
First, When adding the Tag to the mapping file it didn't seem to work, so I put it in the conversion file and then, as it should be, only mails from users that had the tag run via the conversion.
However, it is working only with internal mail.
When sending mails to servers outside my network this tag is ignored.
When sending mail internaly this is the output of the imsimta test -rewrite command:
+# imsimta test -rewrite [email protected] [email protected]+
address channel =
forward channel =
backward channel =
unique identifier =
header forward address = [email protected], [email protected]
header reverse address = [email protected], [email protected]
envelope forw address =
envelope rev address =
name =
mbox =
Extracted address action list:
[email protected]
[email protected]
Extracted 733 address action list:
[email protected]
[email protected]
Address list expansion:
-13 expansion total.
Expanded address:
[email protected], [email protected]
Submitted address list:
ims-ms
+me@ims-ms-daemon (orig [email protected] [email protected], inter [email protected], initial [email protected] [email protected], host ims-ms-daemon) NOTIFY-FAILURES NOTIFY-DELAYS {color:#ff0000}tag 111{color}+
Submitted notifications list:
The tag value is 111, in that case any mail from a user with the value 111 in the mailConversionTag is sent to the conversion channel.
When sending mail to external address I get this:
+# imsimta test -rewrite [email protected] me@external_domain.com+
address channel =
forward channel =
backward channel =
unique identifier =
header forward address = [email protected], me@external_domain.com
header reverse address = [email protected], me@external_domain.com
envelope forw address =
envelope rev address =
name =
mbox =
Extracted address action list:
[email protected]
me@external_domain.com
Extracted 733 address action list:
[email protected]
me@external_domain.com
Address list expansion:
-13 expansion total.
Expanded address:
[email protected], me@external_domain.com
Submitted address list:
ims-ms
+me@ims-ms-daemon (orig [email protected] me@external_domain.com, inter [email protected], initial [email protected] me@external_domain.com, host ims-ms-daemon) NOTIFY-FAILURES NOTIFY-DELAYS {color:#ff0000}tag 111{color}+
tcp_local
+me@external_domain.com (orig [email protected] me@external_domain.com, initial [email protected] me@external_domain.com, host external_domain.com) NOTIFY-FAILURES NOTIFY-DELAYS+
Submitted notifications list:
It looks like after the first phase the tag in not forwarded.
Do I have to enable something so it will be forwarded?
Thanks,
Shlomi -
WebLogic Server 6.1 SP 3 DocumentBuilder throws IOException: Stream closed
Hi,
I have a question about XML processing and error handling, and how the
WebLogic container affects things.
Here's what happens to us. We have a servlet parsing XML using DOM.
The servlet has an InputStream with the content. It gets the default
DocumentBuilderFactory
(weblogic.xml.jaxp.RegistryDocumentBuilderFactory) and makes it
validating. It asks for a DocumentBuilder. It gives the builder our
own custom error handler to collect up all the SAX parse errors. It
then tells the builder to parse the input stream. We would expect
that any problems with the content would be reported as an error to
our error handler, so that we can then report the errors to the user
as part of the servlet response.
However, certain malformed XML content causes the WebLogic parser to
issue several error messages to System.out and throw an IOException
with the message "Stream closed". No errors are recorded in our error
handler. This happens on a variety of inputs, which all revolve
around the root element start tag being malformed or entirely missing.
We get this behavior with a totally empty stream, with a stream that
has the <?xml> and <!DOCTYPE> headers but nothing else, with a stream
that has the headers and then a malformed start tag like
"<Submit_Contracts a="1"b="2"/>". I think the programmer would expect
any of these inputs to cause the parser to simply report a fatal error
and stop. Throwing an IOException makes it look like it's an error in
the underlying stream, and clearly it's not. (Most of the test code I
used actually pulled the XML from a ByteArrayInputStream.)
Shouldn't WebLogic's parser handle these inputs differently? Throwing
an IOException can't be correct, can it? Should the application
instead be responsible for checking that the input has a well-formed
start tag? In that case the application is doing the parsing that we
want to rely on the parser to do! Should the application instead
catch IOExceptions from the parser and report them to the user as
input errors? In that case the application can potentially swallow
and ignore harmful system errors.
The messages on System.out are all along the lines of:
"<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Failed to open XML
document. Failed to retrieve PUBLIC id or SYSTEM id from the document.
Decrease the number of char between the beginning of the document and
its root element.>
<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Failed to open XML
document. Failed to retrieve PUBLIC id. Stream closed>
<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Failed to parse given XML
document. Failed to retrieve PUBLIC id. The root element is required
in a well-formed document.>
<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Failed to parse given XML
document. Failed to retrieve SYSTEM id. The root element is required
in a well-formed document.>
<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Failed to open XML
document. Failed to retrieve root tag. Stream closed>
<Oct 17, 2002 5:38:03 PM EDT> <Error> <XML> <Could not instantiate
factory class specified in the Server console. Invalid parameters: at
least one of publicId,systemId, rootTag must be non-null>
The IOException looks like:
"java.io.IOException: Stream closed
at java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:118)
at java.io.BufferedInputStream.read(BufferedInputStream.java:268)
at weblogic.apache.xerces.utils.ChunkyByteArray.fill(ChunkyByteArray.java:230)
at weblogic.apache.xerces.utils.ChunkyByteArray.<init>(ChunkyByteArray.java:106)
at weblogic.apache.xerces.readers.DefaultReaderFactory.createReader(DefaultReaderFactory.java:153)
at weblogic.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java:499)
at weblogic.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java:318)
at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:974)
at weblogic.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:183)
at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:140)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:86)
at com.isone.sms.participant.contracts.web.WebLogicParserContainerTest.testWebLogicParserTanksOnEmptyStream(WebLogicParserContainerTest.java:448)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at com.isone.sms.participant.contracts.web.ContractTestServlet.doPost(ContractTestServlet.java:23)
at com.isone.sms.participant.contracts.web.ContractTestServlet.doGet(ContractTestServlet.java:16)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2546)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2260)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)"
Judging from the IOException, it looks as though WebLogic's wrapper
parser, RegistryDocumentBuilder, successfully picked a real parser to
do its work and is passing off the input to be parsed there, even
though the input's already closed. Perhaps the
RegistryDocumentBuilder silently screwed up the stream while trying to
figure out what parser to use, but didn't take that into account
before attempting to pass it off for parsing. Perhaps the error
messages on System.out account for when RegistryDocumentBuilder is
screwing up the stream.
But if RegistryDocumentBuilder discovers that the stream can't be
parsed, why can't it simply report a fatal error and stop before
starting the real parser?
Mainly I wanted to put this experience up here on a newsgroup because
I was so surprised that nobody else had reported similar problems. It
makes me doubt whether our applications are handling the XML parsing
correctly. But I can't see any other way that makes sense. Please
let me know what you think!
Thanks,
Jim
Hi,
I got this error when i used JRUN as plugin server through
Ineternet Information Server. but it was working fine when used it
as standalone server.
The reason was beacuase, the inputstream was getting closed . when i removed it, it started working.
(To be frank , the Inputstream was closed by XML DOM PARSER , which is third party component.)
and believe that your case is also the same ....
If you have doubt on that then see that configuration for proxies under your webservers config files
best of luck
LOkesh T.C -
Why the weblogic server 8.1.4 throws NullPoniterException?
Recently my weblogic server 8.1.4 throws the exception as follows:
java.lang.NullPointerException
at org.apache.struts.action.RequestProcessor.getServletContext(RequestPr
ocessor.java:1136)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.
java:1062)
at org.apache.struts.action.RequestProcessor.processForwardConfig(Reques
tProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:148
2)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:387)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
at com.whir.common.util.SetCharacterEncodingFilter.doFilter(SetCharacter
EncodingFilter.java:93)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6316)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
After the exception is thrown, the weblogic server 8.1.1 can't work normally. How can I deal with this problem?Alright Now I have only a copy of Weblogic 8.1.4.
So now what I am doing now is, I'm currently download 10.3.3 Server and installed it onto my pc.
Which means to say I will have 2 different version of server on one PC.
Is it possible for my to run these 2 different version server on one PC? -
Revision: 1338
Author: [email protected]
Date: 2008-04-22 07:45:18 -0700 (Tue, 22 Apr 2008)
Log Message:
Bug: BLZ-123-Attempting to use a channel that doesn't support messaging (AMFChannel/AMFEndpoint withtout polling enabled) should throw error
QA: Yes
Doc: No
Details: Added logic in Consumer such that when the Consumer is connected over a non-realtime channel (i.e. non-polling and non-streaming channel), a warning is logged to let the user know that channel is not going to automatically receive updates via client poll or server push. We can't really throw an error here because one might want to disable channel polling and manually send poll requests when needed and this is a valid configuration as well.
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-123
Modified Paths:
flex/sdk/branches/3.0.x/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.asThanx Mete, yeah i did...
but i solved it some other way... not entirely sure this was
it though as i was doing a lot of things at once...
it was fds.swc... possibly it was out of date or missing. -
Channel with no read interest closing
So say I'm using NIO, and I have a SocketChannel. On the channel's key I've temporarily set no interest in OP_READ, because I don't yet have the correct object to deal with de-serializating the byte stream. Now say that, while I've disabled OP_READ, the remote end of the channel closes the channel, ending the connection. Will I receive the close signal (through reading -1 bytes on the channel) only when I again set interest in OP_READ? (Assume that, on the channel's key, no interest is set on any other operation such as OP_WRITE.)
Thanks,
shadowmatterYou will receive the -1 whenever you call read() regardless of OP_READ. However your own program logic may determine that you only call read() when you get OP_READ - this is up to you.
-
Read channel 1 versus channel 2
Hello,
I went through on Core 1 Lab View course and I start to understand some of it. I have difficulty to write the following application in Lab View 8.5 and 2011 version.
I need to write a VI for the Tektronix TDS 210 2 channel oscilloscope to be able read channel 1 versus channel 2 as( x versus y). Also I need to run this scope as a digital storage scope (store the waveform in the memory and be able to recall in determinate time range) I downloaded the driver for the Scope and I am able to run the Single waveform or Multiple waveform VI but I do not know how do I modify those VI to be able the function as I mentioned above.
I need to know also how I can lock this VI to read the instrument always a same GPIB address.
Could anybody help me about this project please?
Thanks
Joe
Solved!
Go to Solution.Jozsef,
If possible can you give us more information on your system? What GPIB card are you using, and how are you addressing the tektronix device? This driver page may be of use to you, once we get more information we can definitely give you more help on this issue.
http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=288
Regards,
J Newk
Systems Engineer
National Instruments -
Write Channel Closed, possible SSL handshaking or trust failure
Hi,
I Have a problem while working with Two-way SSL. I get Write Channel Closed, possible
SSL handshaking or trust failure error while contacting the server for invoking
a webservice secured by SSL.
I could figure out that the error is happening on client side while validating
the server certificate.
One more observation that i was able to find is, it works fine if the Server certificate
and the client certificate are signed by the same (root) CA.
I tried various options but couldn't find my luck. The BEA documentation in this
regards is not at all sufficient.
If i give strict checking false on my client end, the application works fine.
But for my scenario i want strict checking to be happend (otherwise there is no
point in going for SSL itself).
I am using WLSSLAdapter on my client side. The client application is a standalone
java class running out of weblogic (ideally running on JRun).
The way i have coded in my java class is:
String certificatePath = "C:/Cerificates/cert.pem";
String caCertificatePath = "C:/Cerificates/clientca.pem";
String targetURL = "https://localhost:443/feedservice/FeedService";
//set weblogic ServiceFactory
System.setProperty( "javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl" );
System.setProperty("java.protocol.handler.pkgs","com.certicom.net.ssl");
System.setProperty("https.cipherSuites","SHA1withRSA,MD5withRSA");
SSLAdapterFactory sslFactory = SSLAdapterFactory.getDefaultFactory();
WLSSLAdapter adapter = (WLSSLAdapter) sslFactory.getSSLAdapter();
adapter.setProtocolVersion("SSL3");
adapter.setStrictChecking(true);
adapter.setVerbose(true);
FileInputStream clientCredentialFile = new FileInputStream (certificatePath);
String pwd = "password";
System.out.println("Loding Certificate from ........"+certificatePath);
adapter.loadLocalIdentity(clientCredentialFile, pwd.toCharArray());
System.out.println("Loding CA Certificate from ........"+caCertificatePath);
adapter.setTrustedCertificatesFile(caCertificatePath);
// optionally set the Adapter factory to use this instance always.
sslFactory.setDefaultAdapter(adapter);
sslFactory.setUseDefaultAdapter(true);
// Webservice invocation code..
call.setTargetEndpointAddress(targetURL);
call.setProperty("weblogic.webservice.client.ssladapter",adapter);
Object result = call.invoke(new Object[]{"test.xml"});
The error that i get :
java.io.IOException: Write Channel Closed, possible SSL handshaking or trust failure
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown
Source)
at com.certicom.tls.record.ReadHandler.interpretContent(Unknown Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown
Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown
Source)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:67)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:106)
at java.io.FilterOutputStream.write(FilterOutputStream.java:78)
at weblogic.webservice.binding.soap.HttpClientBinding.writeToStream(HttpClientBinding.java:359)
at weblogic.webservice.binding.soap.HttpClientBinding.send(HttpClientBinding.java:284)
at weblogic.webservice.core.handler.ClientHandler.handleRequest(ClientHandler.java:34)
at weblogic.webservice.core.HandlerChain.handleRequest(HandlerChain.java:131)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:421)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:363)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:423)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:292)
at com.chase.userspace.aceclient.Client.main(Client.java:253)
Exception in handler's handleRequest().
Exception in thread "main" javax.xml.rpc.soap.SOAPFaultException: Write Channel
Closed, possible SSL handshaking or trust fail
ure
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:479)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:363)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:423)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:292)
at com.chase.userspace.aceclient.Client.main(Client.java:253)
Can someone give the working phone number of ....BEA CUSTOMER SUPPORT...The signature validation failure means your trusted CA certificate is not the issuer
of the identity certificate. The identity certificate issuer name can match to
the trusted CA certificate name, but the signature check really determines whether
it is the issuer.
Pavel.
"Chandra Sekhar Rao" <[email protected]> wrote:
>
Hi payal,
I have the issuer of the server identity certificate in the trust file
on client
side. The problem is with signature validation
"Pavel" <[email protected]> wrote:
It looks like your client does not trust the server certificate. Make
sure the
certificate you pass in adapter.setTrustedCertificatesFile(caCertificatePath);
is the issuer of the server's identity certificate.
Pavel.
"Chandra Sekhar Rao" <[email protected]> wrote:
Hi,
I Have a problem while working with Two-way SSL. I get Write Channel
Closed, possible
SSL handshaking or trust failure error while contacting the server
for
invoking
a webservice secured by SSL.
I could figure out that the error is happening on client side whilevalidating
the server certificate.
One more observation that i was able to find is, it works fine if the
Server certificate
and the client certificate are signed by the same (root) CA.
I tried various options but couldn't find my luck. The BEA documentation
in this
regards is not at all sufficient.
If i give strict checking false on my client end, the application works
fine.
But for my scenario i want strict checking to be happend (otherwisethere
is no
point in going for SSL itself).
I am using WLSSLAdapter on my client side. The client application is
a standalone
java class running out of weblogic (ideally running on JRun).
The way i have coded in my java class is:
String certificatePath = "C:/Cerificates/cert.pem";
String caCertificatePath = "C:/Cerificates/clientca.pem";
String targetURL = "https://localhost:443/feedservice/FeedService";
//set weblogic ServiceFactory
System.setProperty( "javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl" );
System.setProperty("java.protocol.handler.pkgs","com.certicom.net.ssl");
System.setProperty("https.cipherSuites","SHA1withRSA,MD5withRSA");
SSLAdapterFactory sslFactory = SSLAdapterFactory.getDefaultFactory();
WLSSLAdapter adapter = (WLSSLAdapter) sslFactory.getSSLAdapter();
adapter.setProtocolVersion("SSL3");
adapter.setStrictChecking(true);
adapter.setVerbose(true);
FileInputStream clientCredentialFile = new FileInputStream (certificatePath);
String pwd = "password";
System.out.println("Loding Certificate from ........"+certificatePath);
adapter.loadLocalIdentity(clientCredentialFile, pwd.toCharArray());
System.out.println("Loding CA Certificate from ........"+caCertificatePath);
adapter.setTrustedCertificatesFile(caCertificatePath);
// optionally set the Adapter factory to use this instance always.
sslFactory.setDefaultAdapter(adapter);
sslFactory.setUseDefaultAdapter(true);
// Webservice invocation code..
call.setTargetEndpointAddress(targetURL);
call.setProperty("weblogic.webservice.client.ssladapter",adapter);
Object result = call.invoke(new Object[]{"test.xml"});
The error that i get :
java.io.IOException: Write Channel Closed, possible SSL handshakingor
trust failure
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown
Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown
Source)
at com.certicom.tls.record.ReadHandler.interpretContent(Unknown
Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown
Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown
Source)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:67)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:106)
at java.io.FilterOutputStream.write(FilterOutputStream.java:78)
at weblogic.webservice.binding.soap.HttpClientBinding.writeToStream(HttpClientBinding.java:359)
at weblogic.webservice.binding.soap.HttpClientBinding.send(HttpClientBinding.java:284)
at weblogic.webservice.core.handler.ClientHandler.handleRequest(ClientHandler.java:34)
at weblogic.webservice.core.HandlerChain.handleRequest(HandlerChain.java:131)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:421)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:363)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:423)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:292)
at com.chase.userspace.aceclient.Client.main(Client.java:253)
Exception in handler's handleRequest().
Exception in thread "main" javax.xml.rpc.soap.SOAPFaultException: Write
Channel
Closed, possible SSL handshaking or trust fail
ure
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:479)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:363)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:423)
at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:292)
at com.chase.userspace.aceclient.Client.main(Client.java:253)
Can someone give the working phone number of ....BEA CUSTOMER SUPPORT... -
"java.io.IOException: Write Channel Closed" starting AdminServer from WLST
Hi,
I am trying to start the admin server through WLST.
Per "Oracle® Fusion Middleware WebLogic Scripting Tool Command Reference 11g Release 1 (10.3.2)" I tried it both ways - online and offline.
When online
wls:/nm/ClassicDomain> startServer('AdminServer','ClassicDomain','t3://10.110.90.156:7002','weblogic','<password>','/u0/app/oracle/product/middleware/user_projects/domains')
I am getting
Starting server AdminServer ...
Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 412, in startServer
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEStarting server AdminServer ...
Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 412, in startServer
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at weblogic.nodemanager.common.DataFormat.writeCommand(DataFormat.java:243)
at weblogic.nodemanager.client.NMServerClient.sendCmd(NMServerClient.java:320)
at weblogic.nodemanager.client.NMServerClient.sendServer(NMServerClient.java:265)
at weblogic.nodemanager.client.NMServerClient.start(NMServerClient.java:94)
at weblogic.management.scripting.NodeManagerService.nmStart(NodeManagerService.java:368)
at weblogic.management.scripting.LifeCycleHandler.startSvr(LifeCycleHandler.java:887)
at weblogic.management.scripting.WLScriptContext.startSvr(WLScriptContext.java:384)
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:597)
java.io.IOException: java.io.IOException: Write Channel Closed
and the node manager log shows:
WARNING: Uncaught exception in server handlerjava.io.IOException: Bad properties data format
java.io.IOException: Bad properties data format
at weblogic.nodemanager.common.DataFormat.readProperties(DataFormat.java:44)
at weblogic.nodemanager.server.Handler.handleStart(Handler.java:537)
at weblogic.nodemanager.server.Handler.handleCommand(Handler.java:118)
at weblogic.nodemanager.server.Handler.run(Handler.java:70)
at java.lang.Thread.run(Thread.java:619)
And if I try it offline
wls:/offline> startServer('AdminServer','ClassicDomain','t3://10.110.90.156:7002','weblogic','<passwd>','/u0/app/oracle/product/middleware/user_projects/domains');
I am getting a big stack below. Can anybody through an idea?
Thank you
Anatoliy
Offline stack:
Starting weblogic server ...
WLST-WLS-1273604718586: <May 11, 2010 3:05:19 PM EDT> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with BEA JRockit(R) Version R27.6.5-32_o-121899-1.6.0_14-20091001-2113-linux-ia32 from BEA Systems, Inc.>
WLST-WLS-1273604718586: <May 11, 2010 3:05:20 PM EDT> <Info> <Management> <BEA-140013> </u0/app/oracle/product/middleware/user_projects/domains/config/config.xml not found>
WLST-WLS-1273604718586: <May 11, 2010 3:05:20 PM EDT> <Info> <Management> <BEA-141254> <Generating new domain directory in /u0/app/oracle/product/middleware/user_projects/domains>
...WLST-WLS-1273604718586: <May 11, 2010 3:05:27 PM EDT> <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason:
WLST-WLS-1273604718586:
WLST-WLS-1273604718586: There are 1 nested errors:
WLST-WLS-1273604718586:
WLST-WLS-1273604718586: weblogic.management.ManagementException: Failure during domain creation
WLST-WLS-1273604718586: at weblogic.management.internal.DomainDirectoryService.generateDomain(DomainDirectoryService.java:229)
WLST-WLS-1273604718586: at weblogic.management.internal.DomainDirectoryService.ensureDomainExists(DomainDirectoryService.java:152)
WLST-WLS-1273604718586: at weblogic.management.internal.DomainDirectoryService.start(DomainDirectoryService.java:72)
WLST-WLS-1273604718586: at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesManager.java:461)
WLST-WLS-1273604718586: at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServicesManager.java:166)
WLST-WLS-1273604718586: at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:749)
WLST-WLS-1273604718586: at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:488)
WLST-WLS-1273604718586: at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:446)
WLST-WLS-1273604718586: at weblogic.Server.main(Server.java:67)
WLST-WLS-1273604718586: Caused by: com.bea.plateng.domain.script.ScriptException: The domain location must have write permission.
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptExecutor.writeDomain(ScriptExecutor.java:723)
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptParserClassic$StateMachine.processWrite(ScriptParserClassic.java:575)
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptParserClassic$StateMachine.execute(ScriptParserClassic.java:431)
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptParserClassic.parseAndRun(ScriptParserClassic.java:150)
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptParserClassic.doExecute(ScriptParserClassic.java:112)
WLST-WLS-1273604718586: at com.bea.plateng.domain.script.ScriptParser.execute(ScriptParser.java:73)
WLST-WLS-1273604718586: at com.bea.plateng.domain.DomainInfoHelper.executeSilentScript(DomainInfoHelper.java:858)
WLST-WLS-1273604718586: at com.bea.plateng.domain.DomainInfoHelper.createDefaultDomain(DomainInfoHelper.java:1762)
WLST-WLS-1273604718586: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
WLST-WLS-1273604718586: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
WLST-WLS-1273604718586: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
WLST-WLS-1273604718586: at java.lang.reflect.Method.invoke(Method.java:597)
WLST-WLS-1273604718586: at weblogic.management.internal.DomainDirectoryService.generateDomain(DomainDirectoryService.java:224)
WLST-WLS-1273604718586: ... 8 more
WLST-WLS-1273604718586:
WLST-WLS-1273604718586: >
WLST-WLS-1273604718586: <May 11, 2010 3:05:27 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
WLST-WLS-1273604718586: <May 11, 2010 3:05:27 PM EDT> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
WLST-WLS-1273604718586: <May 11, 2010 3:05:27 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
WLST-WLS-1273604718586: Stopped draining WLST-WLS-1273604718586
WLST-WLS-1273604718586: Stopped draining WLST-WLS-1273604718586 .............................................Could not connect to the server to verify that it has started. The error returned is: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://10.110.90.156:7002: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused; No available router to destination] Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 432, in startServer
File "<iostream>", line 618, in raiseWLSTException
WLSTException: Error occured while performing startServer : Could not start the server, the process might have timed out or there is an Error starting the server. Please refer to the log files for more details.Hi,
Thank you for the quick response.
I tried that, I can connect so wls:/offline> nmConnect('weblogic','password','10.110.90.156','5556','ClassicDomain','/u0/app/oracle/product/middleware/user_projects/domains/ClassicDomain');
Connecting to Node Manager ...
Successfully Connected to Node Manager.
wls:/nm/ClassicDomain>
but on
nmStart(serverName="AdminServer",domainDir="/u0/app/oracle/product/middleware/user_projects/domains/ClassicDomain")
Starting server AdminServer ...
Error Starting server AdminServer: weblogic.nodemanager.NMException: Exception while starting server 'AdminServer'
wls:/nm/ClassicDomain> nmStart(serverName="AdminServer",domainDir="/u0/app/oracle/product/middleware/user_projects/domains/ClassicDomain")
Starting server AdminServer ...
Error Starting server AdminServer: weblogic.nodemanager.NMException: Exception while starting server 'AdminServer'
wls:/nm/ClassicDomain>
And the AdminServer log shows security authentication error. Wondering why since I am not entering password when I do nmStart?
Do you have an idea?
Thank you
Anatoliy -
Reading parameters from Query string : Sender SOAP adapter.
Hello Experts,
I have a SOAP to SOAP scenario. Here we will have multiple receivers and dynamic receiver determination is needed.
The sender will send a Value in Query string of URL to sender SOAP adapter. This value in Query string parameter will decide the receiver at runtime.
I need to know, how can we read values from Query string of incoming call? I did tried to search blogs & forum threads but unfortunately not able to hit the right links.
Any inputs will be of great help.
Should i use "Use Query String" on sender soap channel? I tried it, but i was not able to find any query string parameters in SOAP header or payload.
Please guide me, its bit urgent.
Regards,
Abhi.> But the argument provided from their side is: They are using standard XSD and this service is provided out of box with sender application.
If they can add a URL parameter, they can also add a field to the structure.
> They cant control the value mapping of parameters in payload to the extent required to implement this change.
Adding a new field to the structure would not affect any existing mapping.
> Since they have this custom requirement of multiple receivers & receiver to be determined at runtime, they need to go for Query string.
This can be done based on any field of the payload.
> I need to find a way to read the query string in any case.
This is not supported by SOAP adapter.
> Can I use one of the header parameters to be mapped to this value (By selecting "Use Query string" & "Keep Headers" flag in sender CC) & then extract this value from header using Dynamic configuration ?
This feature works only for XI header fields, like message ID or QoS.
Not for individual parameters. -
Oracle PL/SQL send/receive message in weblogic jms queue
I am looking for a very simple way using oracle plsql to send and receive messages in a weblogic jms queues.
ThanksEven i am looking for the same . Would be great if someone would help ..The jms setup has to be done in weblogic like the jms server, jms module, Jms connection factory , jms queue and then the jndi names . Now thw Problem here lies to me is that i really dont knw what should be the connection factory targets ,jndi names and where do i give the schema details as in the user name ,password , db name . Also if there is any explaination with eg on how to send /receive messages from a db trigger to jms queues .
Maybe you are looking for
-
Hi there! I am putting together a video and photo movie in move 10. Some of the videos I have been able to edit and use the little turtle however some they are greyed out and not selectable. I have searched about and found that it might be as some a
-
Hi , I have a resultset which fetches data from different tables. The tables include columns incolving DATE format. The resultset fetches the date column in the MM-DD-YYYY HH:MM:SS format. But I need the Date format should be in the DD-MM-YYYY format
-
Pharma business process in sap
Hi friends, Can any one explain about "pharma business process in sap" and , how it works in sap. bye raju
-
Should I dump Classic now that I'm running 10.4.6?
I just upgraded to Tiger to support my middle-schooler's new iPod. With the sluggish performance that followed (I was running 10.3.4 before), I searched the forums and ran across a suggestion to dump Classic if your system runs slower than before. No
-
Glibc detected on Oracle R2 on Linux 2.6.18.274
Hi , Glibc detected on Oracle R2 on Linux 2.6.18.274 *** glibc detected *** double free or corruption (!prev): What may be the cause Kindly help