我的EJB3类和远程接口如下:
package com.myeclipse.ejb3;
import java.io.Serializable;
public interface IMyBean extends Serializable
{
public void doSomething();
}
远程接口:
package com.myeclipse.ejb3;
import javax.ejb.Remote;
@Remote
public interface MyBeanRemote extends IMyBean {
}
无状态ejb:
package com.myeclipse.ejb3;
import javax.ejb.Stateless;
@Stateless(mappedName="ejb/MyBean")
public class MyBean implements MyBeanRemote
{
public void doSomething()
{
System.out.println("Hello world");
}
}
项目在weblogic中成功部署为jar文件。我开发了一个独立的客户端来调用ejb。但这失败了。请帮忙。我已经包含了所有连接到jndi和远程业务接口的weblogic服务器库以进行编译。
客户端代码:
package Ejb3_Client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MyBeanClient {
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
try {
Properties p = new Properties();
p.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
p.put("java.naming.provider.url", "t3://172.21.123.70:8001");
InitialContext ctx = new InitialContext(p);
MyBeanRemote bean = (MyBeanRemote) ctx.lookup("ejb/MyBean#com.myeclipse.ejb3.MyBeanRemote");
System.out.println("bean instance "+ bean);
bean.doSomething();
System.out.println("bean worked");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
但是我得到这个例外:
javax.name.CommunicationException [Root exception is java.rmi.UnmarshalException: failed to unmarshal class java.lang.Object; nested exception is: java.lang.ClassNotFoundException: com.myeclipse.ejb3.MyBeanRemote] at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:74) at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:439) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:395) atweblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380) at javax.name.InitialContext.lookup(InitialContext.java:392) at Ejb3_Client.MyBeanClient.main(MyBeanClient.java:33) Cause by: java.rmi.UnmarshalException: failed to unmarshal class java.lang.Object;nested exception是: java.lang.ClassNotFoundException: com.myeclipse.ejb3.MyBeanRemote at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:244) at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348) at weblogic.rmi.clusterableRemoteRef.invoke(ClusterableRemoteRef.java:259) at weblogic.jndi.internal.ServerNamingNode_1030_WLStub.lookup(Unknown Source) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:392) ...3 more Cause by: java.lang.ClassNotFoundException: com.myeclipse.ejb3.MyBeanRemote at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) atweblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject(RemoteBusinessIntfProxy.java:200) 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) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) atjava.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197) at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564) at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193) at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62) at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240) ...7更多
我搜索了很多,但发现了为什么它不能解组远程接口的问题。
上述错误的原因主要是因为在一些实现可序列化接口的java文件中,您可以将这些文件恢复到以前的版本
我已尝试查找,,...似乎没有任何工作,我总是以一个NameNotFoundException结束,总是来自整个字符串,除了部分,作为剩余的名称(即它根本找不到任何东西)。 编辑我的TimerController资源似乎也不在WebLogic的jndi树页中。 edit2在使用列出上下文中的对象之后,似乎确实忽略了资源-引用。我会进一步调查。 下面是完整的堆栈跟踪:
我有一个Spring MVC 3.1.1应用程序,它需要查找部署到WebLogic10.3.5中远程EJB3.0。 其中ABC不同的每一次尝试。 安装和配置Weblogic后,我可以看到部署在控制台中的EJB,这就是我在他的JNDI树中看到的: 每个都是一个树节点,名称为 如您所见,我想在Spring Security3.1.4中设置EJB for login作用域。 这是远程接口的分支: 这是类
在weblogic上部署webapp时,我遇到了以下错误: 有人能告诉我调试这个的方法吗。
我对JavaEE非常陌生,尝试运行一个小的EJB示例,但远程JNDI查找总是失败。 到目前为止,我做了什么? 我使用Eclipse for JavaEE,在Marketplace上安装了JBossTools并创建了一个JBoss EAP 7. x运行时服务器(我在安装过程中下载了一个7.1运行时)。 我写了一些Bean,将它们部署在服务器上并启动它。 我用JNDI-Lookup编写了一些客户端代码
我创建了一个基本的.NET framework MVC web应用程序,并添加了使用Cloud Watch logs SDK向AWS Cloud Watch logs发送日志的逻辑,它在LocalSystem/LocalHost中运行良好,但当我对映像进行对接时,就开始出现异常。请指导我解决这个问题。 Amazon.Runtime.AmazonServiceException:“引发了状态为Nam