gpt4 book ai didi

java - EJB从未被调用,不执行

转载 作者:行者123 更新时间:2023-12-02 08:03:51 24 4
gpt4 key购买 nike

我在这里问过类似的问题:Best way to interact with EJBs in Java EE反响很好,但我仍然没有得到我想要的结果。即使我添加了 @PostConstruct 注释并将主类转换为托管 bean 以便我可以使用注入(inject),EJB 仍然没有被调用。我想我已经很接近了,但我仍然没有掌握 Java EE 和 EJB 涉及的一些基本概念。我想我可能必须使用某种计时器事件才能完成这项工作。

同样,我的问题是我希望此类在运行时至少执行一次。它从 URL 获取 twitter feed 结果,将内容解析到数组中,然后将第一个值添加到数据库中。数据库管理是通过另一个 EJB 完成的,因此我必须使用某种注入(inject)来访问此类。最初,我创建了一个 main 方法来测试代码,但我收到了 Null 引用异常,因为我试图从常规 java 类注入(inject)并调用 EJB 的方法。

这是我的带有托管 bean 和 PostConstruct 注释的新代码:

@ManagedBean

public class Driver {

@EJB RSSbean rssbean;

@PostConstruct
public void initURL() throws IOException, JSONException{

System.setProperty("http.proxyHost", "proxya..com");
System.setProperty("http.proxyPort", "8080");
/////////////auth code///////////////auth code/////////////////
String username = System.getProperty("proxy.authentication.username");
String password = System.getProperty("proxy.authentication.password");
if (username == null)
{
Authenticator.setDefault(new ProxyAuthenticator("s", "w"));
}
///////////////end auth code/////////////////////////////////end

URL twitterSource = new URL("http://search.twitter.com/search.json?q=news");
ByteArrayOutputStream urlOutputStream = new ByteArrayOutputStream();

IOUtils.copy(twitterSource.openStream(), urlOutputStream);
String urlContents = urlOutputStream.toString();
JSONObject thisobject = new JSONObject(urlContents);
JSONArray names = thisobject.names();
JSONArray asArray = thisobject.toJSONArray(names);
JSONArray resultsArray = thisobject.getJSONArray("results");

JSONObject(urlContents.trim());

JSONObject jsonObject = resultsArray.getJSONObject(0);

String twitterText = jsonObject.getString("text");

System.out.println("Calling rssbean from Driver");
**rssbean.updateDatabase("twitterText");**
}}

rssbean.updateDatabase 的底线是需要执行哪些更新才能持久保存到数据库中。

最佳答案

您必须添加@Stateless@Stateful(取决于您的使用/需要),然后删除@ManagedBean。如果您将其设置为 @Stateful,请务必也实现 Serializeable 接口(interface)。

关于java - EJB从未被调用,不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com