Standalone JMS client in SJS App Server 8.0
Hi
I am trying to retrieve a message from a JMS queue from astandalone client.
The code the client uses to lookup JMS resources is:
try
/* Create the object of InitialContext interface */
Properties env = new Properties( );
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
env.put(Context.PROVIDER_URL,"iiop://localhost:3700");
jndiContext = new InitialContext(env);
/* Find the connection factory object */
QConnectionFactory = (QueueConnectionFactory)jndiContext.lookup("jms/QConnectionFactory");
/* Find the queue */
queue = (Queue) jndiContext.lookup("jms/Queue");
catch (NamingException e)
System.out.println("Error: " + e.toString());
The code throws the following exception:
Error: javax.naming.NameNotFoundException [Root exception is org.omg.CosNaming.N
amingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Exception in thread "main" java.lang.NullPointerException
at QReceiver.main(QReceiver.java:51)
What might be the problem? Pls help. The code works fine when executed as an Application client of SJS Appserver without using the JNDI Context part.
Thanks in advance
JLRocky
Also have a problem similar to this. I have found that
1. JMS between beans on the same server work fine
2. JMS between standalone client and server work fine if you start the bundled imq as a standalone message server
3. If you are using the Appserver then standalones cannont connect, but it you are using the imq beans cannot connect.
so i haven't had time to try this yet but my possible solution is:
configure the app server to use an external JMS server (its in the admin console some place) make the external server to be an imq running as a standalone, hopefully it can be started on localhost with out any port changes.
I think rather than bundling the two so both could be used they embeded the imq in the appserver and shielded it from outside comminication
Similar Messages
-
I have implemented a transformation server as a JMS client. This is not
written as a EJB bean, partly because I'm not very familiar with EJB beans.
I'm being told MDB is the way to go (I'm a bit reluctant in front of the
additional work) for the usual reasons : transaction-control (not really an
issue right now for me but may become one), ease of deployment and
centralized monitoring. Fair enough.
My standalone JMS client creates a lot of variables at initialization (such
as a precompiled XSLT stylesheet to substantially improve the speed of each
transformation).
Where should this be created if I were to convert my standalone JMS client
into an MDB ? In ejbCreate() ?
I'm also a bit worried about a few aspects :
1) Performance, the size of requests may vary tremendously and I currently
use a synchronous receive on my input queue, is this more efficient (I pull
messages when I'm ready) than using beans and onMessage() ? In other words,
will the container try to push message notifications to MDB bean instances
that are not ready ?
2) My standalone JMS consumer is also a producer to several destinations
(including temporary queues, permanent queues and topics), is there any
limitation to the use of JMS destinations in an MDB (what about selectors ?)
vs a standalone java JMS application?
3) My standalone JMS consumer creates a few threads per request. Any gotchas
in a MDB vs a standalone Java JMS application ? Are MDB passivated at any
time ?
Many thanks for any answer,
Rosalie
RosalieRosalie Mignon wrote:
I have implemented a transformation server as a JMS client. This is not
written as a EJB bean, partly because I'm not very familiar with EJB beans.
I'm being told MDB is the way to go (I'm a bit reluctant in front of the
additional work) for the usual reasons : transaction-control (not really an
issue right now for me but may become one), ease of deployment and
centralized monitoring. Fair enough.There's a number of MDB advantages over writing your own JMS consumers.
I would recommend MDBs for JMS consumers running within WLS. If you
have a JMS consumer that is a separate (say client) process, then
vanilla JMS is still the way to go.
The MDB container takes care of things like reconnecting you to JMS if
it fails. It supports foreign JMS providers so your MDBs will work with
"foreign" messaging systems like MQ-Series.
>
My standalone JMS client creates a lot of variables at initialization (such
as a precompiled XSLT stylesheet to substantially improve the speed of each
transformation).
Where should this be created if I were to convert my standalone JMS client
into an MDB ? In ejbCreate() ?Yes, ejbCreate would be fine.
>
I'm also a bit worried about a few aspects :
1) Performance, the size of requests may vary tremendously and I currently
use a synchronous receive on my input queue, is this more efficient (I pull
messages when I'm ready) than using beans and onMessage() ? In other words,
will the container try to push message notifications to MDB bean instances
that are not ready ?I'm not sure I understand. You will have a pool of MDB instances all
receiving from the queue. When an instance is available and there is a
message pending, the EJB/JMS containers will call your MDB's onMessage
implementation.
>
2) My standalone JMS consumer is also a producer to several destinations
(including temporary queues, permanent queues and topics), is there any
limitation to the use of JMS destinations in an MDB (what about selectors ?)
vs a standalone java JMS application?Not that I can think of.
>
3) My standalone JMS consumer creates a few threads per request. Any gotchas
in a MDB vs a standalone Java JMS application ? You are not really allowed to create threads from an EJB. Why do you
need to create threads? In general, we wouldn't recommend that
server-side applications create new threads on each request.
Are MDB passivated at any
time ?
No
Many thanks for any answer,Your domain name is an unusual one for the J2EE world. If you can tell
us, I'd be interested to know what you're doing.
-- Rob
>
Rosalie
Rosalie -
Revision: 2449
Author: [email protected]
Date: 2008-07-11 07:22:10 -0700 (Fri, 11 Jul 2008)
Log Message:
Add some JMS messaging tests to app server specific excludes lists. Some of the JMS tests fail on certain app servers because of features that are not supported on those app servers.
Modified Paths:
blazeds/branches/3.0.x/qa/features/excludes.propertiesHi,
Did you create your destinations in your application server? It seems that the destinations such as topics and queues are not created. First you should create them and then start using them.
For example, in here, it says that jndi/Topic is not valid. To check if the destinations are valid or not; you can do it either through the graphical user interface or the command line console. -
How to Non-ACC Client connect Sun App Server 8 with SSL
I have create a Rich Client(Non-ACC) that connect to Sun App Server 8 with IIOP(8001) and is working fine. However, when I try to connect to same server with using SSL (8002) and throw exception during lookup a Bean as below.
Please help!!
Server Configuration
================
IIOP Port(s): 8001, 8002, 8003
All listener ports are enabled
Client Coding
===========
env.put(javax.naming.Context.PROVIDER_URL, "iiop://"+url);
env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory");
System.setProperty("javax.net.ssl.keyStoreType", "jks");
System.setProperty("javax.net.ssl.keyStore", "D:\\Sun\\AppServer\\domains\\adsr\\config\\keystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
System.setProperty("javax.net.ssl.trustStore", "D:\\Sun\\AppServer\\domains\\adsr\\config\\cacerts.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
System.setProperty("com.sun.CORBA.connection.ORBSocketFactory", "com.sun.enterprise.iiop.IIOPSSLSocketFactory");
ic = new InitialContext(env);
Object objref = ic.lookup("ejb20/statelessSession/EntControllerHome");
Exception
========
[java] Mar 18, 2005 4:43:59 PM com.sun.corba.ee.spi.logging.LogWrapperBasedoLog
[java] INFO: "IOP00710299: (INTERNAL) Successfully created IIOP listener on the specified host/port: all interfaces/4645"
[java] Mar 18, 2005 4:44:00 PM com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl readFully
[java] WARNING: "IOP00410215: (COMM_FAILURE) Read of full message failed :
bytes requested = 12 bytes read = 7 max wait time = 300 total time spent waiting = 364"
[java] org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 215 completed: No
[java] at com.sun.corba.ee.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2629)
[java] at com.sun.corba.ee.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2655)
[java] at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.readFully(SocketOrChannelConnectionImpl.java:676)
[java] at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.read(SocketOrChannelConnectionImpl.java:545)
[java] at com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.readGIOPHeader(MessageBase.java:119)
[java] at com.sun.corba.ee.impl.transport.CorbaContactInfoBase.createMessageMediator(CorbaContactInfoBase.java:153)
[java] at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.readBits(SocketOrChannelConnectionImpl.java:325)
[java] at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.handleEvent(SocketOrChannelConnectionImpl.java:1175)
[java] at com.sun.corba.ee.impl.transport.SelectorImpl.run(SelectorImpl.java:275)
[java] javax.naming.CommunicationException: Can't find SerialContextProvider [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 c
ompleted: Maybe]
[java] at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.java:133)
[java] at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:290)
[java] at javax.naming.InitialContext.lookup(InitialContext.java:347)
[java] at com.shkco.jaf.test.JAFLogonTest.connect(JAFLogonTest.java:110)
[java] at com.shkco.jaf.test.JAFLogonTest.setUp(JAFLogonTest.java:134)
[java] at junit.framework.TestCase.runBare(TestCase.java:125)
[java] at junit.framework.TestResult$1.protect(TestResult.java:106)
[java] at junit.framework.TestResult.runProtected(TestResult.java:124)I don't think tomcat supports the ejb-ref portion of web.xml. If you're using ejbs your best bet is to use a web container within a J2EE implementation.
--ken -
Regd standalone applicaiton (daemon) running in app server
I woudl like to know whetehr we can deploy a standalone java applicaiton in any appserver. I am thinking of deploying a daemon (standalone application) in app server.
Please let me know the feasibiliity and pros and cons of this.
Thanks in advance.
Regards,
GodspeedMost of the time this problem is caused by an invalid font file:
Function=Java_sun_awt_font_NativeFontWrapper_registerFonts
Library=/opt/product/GSS/bea81sp1/jdk141_02/jre/lib/PA_RISC2.0/libfontmanager.s l
See this thread for information on the resolution:
http://forum.java.sun.com/thread.jspa?threadID=590869&tstart=0 -
Standalone JMS client in J2EE 1.4 Beta
Hi,
I expected it should be possible to deploy an MD Bean and to send message to it from outside the server - using "runclient". It does not work for me. During "runclient" it can not find the queue - defined with "message-destination". Can anybody tell me - is it supposed to work this way?
I do runclient -client m01mclient.ear -name MDClient
I have .ear with application.xml and sun-j2ee-ri.xml and .jar in it with application-client.xml. Here are the descriptors:
application-client>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0" encoding="UTF-8"?>
<application-client version="1.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd">
<display-name>MDClient</display-name>
<resource-ref>
<res-ref-name>jms/KnownConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/KnownQueue</message-destination-ref-name>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-usage>Produces</message-destination-usage>
<message-destination-link>NameForKnownQueue</message-destination-link>
</message-destination-ref>
<message-destination>
<message-destination-name>NameForKnownQueue</message-destination-name>
</message-destination>
</application-client>
sun-j2ee-ri.xml>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE j2ee-ri-specific-information
PUBLIC "-//Sun Microsystems Inc.//DTD J2EE Reference Implementation 1.4//EN"
"http://localhost:8000/sun-j2ee-ri_1_4.dtd">
<j2ee-ri-specific-information>
<app-client>
<module-name>mdclient.jar</module-name>
<resource-ref>
<res-ref-name>jms/KnownConnectionFactory</res-ref-name>
<jndi-name>jms/QueueConnectionFactory</jndi-name>
<default-resource-principal>
<name>j2ee</name>
<password>j2ee</password>
</default-resource-principal>
</resource-ref>
<message-destination>
<message-destination-name>NameForKnownQueue</message-destination-name>
<jndi-name>jms/Queue</jndi-name>
</message-destination>
</app-client>
</j2ee-ri-specific-information>Sorry for the false alarm. In fact it works fine with these same deployment descriptors.
But in the last J2EE Tech Tips the client is packaged much simpler. -
C/++ clients to WebLogic App Server
We face a situation where C/++ clients need be handled in a synchronous mode over a socket. What would be best way to handle them?
The two options that come to mind are (1) to use JNI to/from a C++ server or (2) to generate IDL for a java remote object, either RMI or EJB, and use a C++ ORB to call into the remote object.
Pranab Das wrote:
We face a situation where C/++ clients need be handled in a synchronous mode over a socket. What would be best way to handle them? -
Unable to install SJS App Server
Please help - half way through installation I get the an error. THe log reads:
INFO - Start Sun Java System Message Queue configuration
INFO - End Sun Java System Message Queue configuration
INFO - unpacked jar file: C:\Sun\AppServer\lib\admin-cli.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-admin.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-cmp.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-deployment-client.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-ext.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-jstl.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-tags.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\appserv-ws.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\commons-launcher.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\j2ee-svc.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\javaee.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\sun-appserv-ant.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\toplink-essentials.jar.pack.gz
INFO - unpacked jar file: C:\Sun\AppServer\lib\deployment\sun-as-jsr88-dm.jar.pack.gz
INFO - Start core server configuration.
ERROR - default domain creation returned following exception: abnormal subprocess
termination: Detailed Message:'��?' is not recognized as an internal or external command,
operable program or batch file.
'�??' is not recognized as an internal or external command,
operable program or batch file.
INFO - End core server configuration.
INFO - Start samples configuration.
INFO - End samples configuration.
INFO - Start Derby Configuration.
INFO - End Derby Configuration.Wierd characters from error message are probably coming from your PATH environment variable, so you'll need to clean it up as described in this thread:
http://forum.java.sun.com/thread.jspa?forumID=136&threadID=561947 -
How to insert message in OC4J JMS from standalone java client.
Hi,
I have been following available examples for creating standalone java clients to insert messages in JMS queues.
I am able to insert using java client when the SOA suite and the standalone java code are on same machine.
package producerconsumerinjava;
import javax.jms.*;
import javax.naming.*;
import java.util.Hashtable;
public class QueueProducer
public static void main(String[] args)
String queueName = "jms/demoQueue";
String queueConnectionFactoryName = "jms/QueueConnectionFactory";
Context jndiContext = null;
QueueConnectionFactory queueConnectionFactory = null;
QueueConnection queueConnection = null;
QueueSession queueSession = null;
Queue queue = null;
QueueSender queueSender = null;
TextMessage message = null;
int noMessages = 5;
* Set the environment for a connection to the OC4J instance
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");
env.put(Context.SECURITY_CREDENTIALS, "mypass");
env.put(Context.PROVIDER_URL,"ormi://myserver.company.com:12402"); //12402 is the rmi port
* Set the Context Object.
* Lookup the Queue Connection Factory.
* Lookup the JMS Destination.
try
jndiContext = new InitialContext(env);
queueConnectionFactory =
(QueueConnectionFactory) jndiContext.lookup(queueConnectionFactoryName);
queue = (Queue) jndiContext.lookup(queueName);
catch (NamingException e)
System.out.println("JNDI lookup failed: " + e.toString());
System.exit(1);
* Create connection.
* Create session from connection.
* Create sender.
* Create text message.
* Send messages.
* Send non text message to end text messages.
* Close connection.
try
queueConnection = queueConnectionFactory.createQueueConnection();
queueSession =
queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queueSender = queueSession.createSender(queue);
message = queueSession.createTextMessage();
for (int i = 0; i < noMessages; i++)
message.setText("Message " + (i + 1));
System.out.println("Producing message: " + message.getText());
queueSender.send(message);
queueSender.send(queueSession.createBytesMessage());
catch (JMSException e)
System.out.println("Exception occurred: " + e.toString());
finally
if (queueConnection != null)
try
queueConnection.close();
catch (JMSException e)
System.out.println("Closing error: " + e.toString());
But when the SOA Suite is remote, I am struggling to get the settings correct
Till now, here is what I have figured out from looking at blogs/tars etc on the Net:
1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactory (http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13975/jndi.htm)
2. The project should have a META-INF/application-client.xml file, which may be dummy (http://www.wever.org/java/space/Oracle/JmsTar1). Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.
Errors:
When trying to run exact same code on local server that tries to enqueue JMS on remotee serverer
Exception occurred: javax.jms.JMSException: Unable to create a connection to "xxxxxxx.yyyyyy01.dev.com/10.42.456.11:12,602" as user "null".
Any help is greatly welcome.
As an exercise, I copied this complete code on the server and then ran locally using a telnet client...it worked. So the problem is coming when accessing the server remotely.
Rgds,
Amit1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactoryNot necessarily.
2. The project should have a META-INF/application-client.xml fileThat's only necessary if going the ApplicationClientInitialContextFactory route.
There are two types of JMS client applications you can write -- a pure/plain Java app, and an "AppClient". That first is your everyday run-of-the-mill Java application, nothing special. That latter is a special, complicated beast that tries to act as a part of the whole client/server/J2EE architecture which provides you with a semi-managed environment. Either can be made to work, but if all you need is JMS access (using plain OC4J JMS factory/queue names and not JMS Connector names), then the first is easier to get working (and performs a tiny bit better as well due to being a lighter-weight solution).
I think the problem you are having might be: When you use the plain Java client solution, you do not have any type of management, and that includes user management. With no user management (and if the JMS server is not configured to allow anonymous connections) you need to include the username and password in the call to createConnection. (I think it may be that this is actually true in the AppClient case as well -- I avoid using the AppClient model as much as possible so my memory there is weaker.)
If you prefer to go the AppClient route, I would point you to a demo I wrote which had a functioning example, but Oracle seems to have removed it (and all of the 10.1.3 demos?) from OTN. :-(
Hmm, it seems to still be available on the wayback machine:
http://web.archive.org/web/20061021064014/www.oracle.com/technology/tech/java/oc4j/1013/how_to/index.html
(Just look down the page for "With OEMS JMS (In-Memory and File-Based)" -- there is an .html document with info, and there is a .zip file with source code.)
Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.The app client in my demo had the following directory structure:
myjavaclient.class
jndi.properties
META-INF\MANIFEST.MF
META-INF\application-client.xml
META-INF\orion-application-client.xml
When you use ApplicationClientInitialContextFactory I think it just looks under .\META-INF for the .xml files.
-Jeff -
How the JMS client detect if the JMS server is still running?
I have a JMS server running on Weblogic and a JMS client running as a standalone application on my local machine. I ran into the problem that if the JMS server is down for a period of time and then get re-started, the JMS client will lose its connection to the server. Since JMS client is just passively listening to the topic it subscribes, it will have no information about the status of the JMS server. Therefore it will not be able to receive any new message if the JMS server is restarted.
I wonder if there is a way I can have the JMS client automatically detect if the connection to the server is lost or reset. I tried to use a while loop in JMS client that does a JNDI loopup every minute to check if the JMS server is up. But if the WL server is down, the JMS client will just catch an exception and crash.Hi,
You should use an exception listener that allows a client to be notified of a problem asynchronously. As your client only consumes messages, it would have no other way to learn that its connection has failed.
Hence, you should implement the interface ExceptionListener (let says MyExceptionListener) and define your reconnection logic in the method onException(JMSException exception). MyExceptionListener has to be registered with your connection with the method:
public void setExceptionListener(ExceptionListener listener) throws JMSException
Hope it helps,
Arnaud
www.arjuna.com -
Weblogic JMS Client App fails creating queue connection
Using the example provided from installation: ...\bea\wlserver_10.0\samples\server\examples\src\examples\jms\queue\QueueBrowse.java
I can successfully connect and display the queue when this test app runs on the local Weblogic Server. When I run the test app on a remote server (not the Weblogic server), I get the following error:
Exception in thread "main" weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.MarshalException: failed to marshal connectionCreateRequest(Lweblogic.jms.frontend.FEConnectionCreateRequest;); nested exception is:
java.rmi.UnexpectedException: Failed to parse descriptor file; nested exception is:
java.lang.NullPointerException
at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:258)
at weblogic.jms.client.JMSConnectionFactory.createConnectionInternal(JMSConnectionFactory.java:285)
at weblogic.jms.client.JMSConnectionFactory.createQueueConnection(JMSConnectionFactory.java:165)
at com.lodestarcorp.custom.QueueBrowse.init(QueueBrowse.java:53)
at com.lodestarcorp.custom.QueueBrowse.main(QueueBrowse.java:129)
Caused by: java.rmi.MarshalException: failed to marshal connectionCreateRequest(Lweblogic.jms.frontend.FEConnectionCreateRequest;); nested exception is:
java.rmi.UnexpectedException: Failed to parse descriptor file; nested exception is:
java.lang.NullPointerException
at weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java:91)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:332)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
at weblogic.jms.frontend.FEConnectionFactoryImpl_1001_WLStub.connectionCreateRequest(Unknown Source)
at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:224)
... 4 more
Caused by: java.rmi.UnexpectedException: Failed to parse descriptor file; nested exception is:
java.lang.NullPointerException
at weblogic.rmi.internal.DescriptorManager.createRuntimeDescriptor(DescriptorManager.java:118)
at weblogic.rmi.internal.DescriptorManager.getBasicRuntimeDescriptor(DescriptorManager.java:89)
at weblogic.rmi.internal.DescriptorManager.getDescriptor(DescriptorManager.java:55)
at weblogic.rmi.internal.DescriptorManager.getDescriptor(DescriptorManager.java:41)
at weblogic.rmi.internal.OIDManager.makeServerReference(OIDManager.java:194)
at weblogic.rmi.internal.OIDManager.getReplacement(OIDManager.java:175)
at weblogic.rmi.utils.io.RemoteObjectReplacer.replaceSmartStubInfo(RemoteObjectReplacer.java:116)
at weblogic.rmi.utils.io.RemoteObjectReplacer.replaceObject(RemoteObjectReplacer.java:102)
at weblogic.rmi.utils.io.InteropObjectReplacer.replaceObject(InteropObjectReplacer.java:62)
at weblogic.utils.io.ChunkedObjectOutputStream.replaceObject(ChunkedObjectOutputStream.java:40)
at weblogic.utils.io.ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(ChunkedObjectOutputStream.java:141)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at weblogic.messaging.dispatcher.DispatcherWrapper.writeExternal(DispatcherWrapper.java:152)
at weblogic.jms.frontend.FEConnectionCreateRequest.writeExternal(FEConnectionCreateRequest.java:98)
at java.io.ObjectOutputStream.writeExternalData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.java:614)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObjectWL(MsgAbbrevOutputStream.java:605)
at weblogic.rmi.internal.ObjectIO.writeObject(ObjectIO.java:38)
at weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java:87)
... 8 more
Caused by: java.lang.NullPointerException
at weblogic.rmi.internal.BasicRuntimeDescriptor.createSkeletonClass(BasicRuntimeDescriptor.java:272)
at weblogic.rmi.internal.BasicRuntimeDescriptor.<init>(BasicRuntimeDescriptor.java:158)
at weblogic.rmi.internal.BasicRuntimeDescriptor.<init>(BasicRuntimeDescriptor.java:140)
at weblogic.rmi.internal.DescriptorManager.createRuntimeDescriptor(DescriptorManager.java:110)
... 30 more
FYI: I did create the wlfullclient.jar from the installation.
Could the problem be related to a proxy issue? It's not a DNS problem (I've tested with the IP address).
Thanks,
BrianI had this very same issue, in a project I was importing directly individual jars:
<classpathentry kind="lib" path="lib/javax.jms_1.1.1.jar"/>
<classpathentry kind="lib" path="lib/weblogic.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.security.identity_1.1.2.1.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.workmanager_1.9.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.workmanager.ja_1.9.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.transaction_2.7.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.rmi.client.ja_1.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.rmi.client_1.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.security.wls_1.0.0.0_6-1-0-0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.utils.full_1.9.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.security_1.0.0.0_6-1-0-0.jar"/>
<classpathentry kind="lib" path="lib/wlclient.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.utils.classloaders_1.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.management.core_2.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.descriptor_1.9.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.logging_1.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.timers_1.7.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.socket.api_1.2.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.security.digest_1.0.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.weblogic.lifecycle_1.4.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.store_1.7.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.common.security.api_1.0.0.0_6-1-0-0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.utils.wrapper_1.4.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.messaging.kernel_1.8.0.0.jar"/>
<classpathentry kind="lib" path="lib/com.bea.core.utils.expressions_1.4.0.0.jar"/>
and everything was working;
in another project I was importing the "Weblogic System Libraries" libraries, and I was getting the NullPointerException...
I have the sensation that there is room for improvement in the way libraries are managed. -
Weblogic JMS Client App supporting FSContext?
Can a Weblogic JMS Client app use a different JNDI Initial Context such as Sun's File System Context (com.sun.jndi.fscontext.RefFSContextFactory), instead of the Weblogic Initial Context (weblogic.jndi.WLInitialContextFactory)??
BrianYou need to find a way to bind WLS-JMS objects to the FSContext JNDI provider (e.g., programmaticly). JNDI is a standard and you can use any compliant provider.
The other way around, in WLS you can configure a foreign JNDI provider or foreign JMS server that allow you to lookup objects from a foreign jndi tree via WLS jndi. -
How can i check the office web app server(wac client) is calling custom WOPI host?
I am getting an error when I testing my wopi host(which is the same as
example) with Office Web app server "Sorry, there was a problem and we can't open this document. If this happens again, try opening the document in Microsoft Word."
1-how can find the log files of this error?
2-how can i check the office web app server(wac client) is calling my WOPI host?
I am not sure about cumunication between owa to wopi host. I actually dont know how to implement checkfile and getfile functions to wopi host for waiting for call back from owa client.
Note:I am sure that office web app server is configured true. Because i test it with sharepoint 2013 and editing and viewing is working well.Hi,
According to your post, my understanding is that
CheckFileInfo is how the WOPI application gets information about the file and the permissions a user has on the file. It should have a URL that looks like this:
HTTP://server/<...>/wopi*/files/<id>?access_token=<token>
While CheckFileInfo provides information about a file, GetFile returns the file itself. It should have a URL that looks like this:
HTTP://server/<...>/wopi*/files/<id>/contents?access_token=<token>
There is a great article for your reference.
http://blogs.msdn.com/b/officedevdocs/archive/2013/03/20/introducing-wopi.aspx
You can also refer to the following article which is about building an Office Web Apps(OWA) WOPI Host.
http://blogs.msdn.com/b/scicoria/archive/2013/07/22/building-an-office-web-apps-owa-wopi-host.aspx
Thanks & Regards,
Jason
Jason Guo
TechNet Community Support -
Hi
I am installing web cache on two servers in web tier and J2EE server (with OHS) on another two servers in apps tier. Should I use standalone webcache or install from Oracle Apps Server package? If I choose Oracle Apps Server package, I have to disable Home, HTTP components. But it is DCM managed. Any suggestions?
And should I deploy my OHS servers on web cache servers in the web tier? In future we want to expand J2EE installation, we will deploy Portal with SSO, OID etc.
Regards
Shen JieShen Jie,
Please review the Enterprise Deployment to see what are the best architectures.
Hope this helps.
Deepak -
Performance advantage to standalone OC4J versus App Server?
If one uses only the JMS server part of the 10g Application Server, would there be any performance advantage to running the standalone version of the OC4J JMS server versus running the entire application server?
Are you saying there is zero overhead associated with passing JMS messages through the application server?
Logic suggests a performance increase when a step is removed...
Maybe you are looking for
-
Hi there, I keep getting these really annoying spam emails. Messages from people claiming the have added me as a friend on some social networking site or another. Te only social networking sites I am on is G+ and Twitter, and none of these requests
-
How to make the condition type active
hi, how to make the condition type active when its in inactive stage and its showing yellow triangle and y in the control features of it. and how to solve if is showing a statement as "INITAILISED". regards, balajit
-
Hi Gurus, I am using f.18 to get vendor balance confirmation printouts. Now the problem is that when i execute f.18 for multiple vendor the system is showing seperate seperate print preview for every vendor but the client wants all the vendors to be
-
I get the above error trying to use back to my Mac with TC. This worked flawlessly before I replaced my Belkin pre-n router at home with TC. Anyone know what -36 means? John
-
I imported "Image Sequence" inPS then created the sequence and adjusted the layers and timeline. Two questions: 1) How do I revert all the frames (the are in the wrong order) 2) from the file in Photoshop format but I can't figure out how to save a