小编sfr*_*frj的帖子

从java无状态EJB发送电子邮件(Java EE-6)

我想发送一封关于EJB的电子邮件,但我在这个例外中得到的唯一回报是:

java.lang.RuntimeException: javax.mail.AuthenticationFailedException: failed to connect, no password specified?
Run Code Online (Sandbox Code Playgroud)

这就是我的EJB的样子:

@Stateless(name = "ejbs/EmailServiceEJB")
public class EmailServiceEJB extends Authenticator implements IEmailServiceEJB {

public PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("xxxxxxx@gmail.com",
            "xxxxxxx");
}

public void sendAccountActivationLinkToBuyer(String destinationEmail,
        String name) {
    // OUR EMAIL SETTINGS
    String host = "smtp.gmail.com";// Gmail
    int port = 465;
    String serviceUsername = "xxxxxxx@gmail.com";
    String servicePassword = "xxxxxxx";// Our Gmail password

    Properties props = new Properties();
    props.put("mail.smtp.user", serviceUsername);
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.port", port);
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.socketFactory.port", port); …
Run Code Online (Sandbox Code Playgroud)

java glassfish jakarta-mail java-ee ejb-3.0

4
推荐指数
1
解决办法
8757
查看次数

有趣的调用主要方法

我在维基百科上读到了一种名为"D"的编程语言,这是我第一次阅读它.

我很好奇,语法看起来非常类似于Java.但最有趣的是当我看到他们的主要方法使用char [] []时.

我打开了Eclipse,我尝试了这个:

public static void main(char [][] args){
}
Run Code Online (Sandbox Code Playgroud)

当我看到编译没有语法错误时,我感到很惊讶,但我不明白为什么.
有人可以向我解释为什么对main方法的调用可以用Java编译吗?

java

4
推荐指数
1
解决办法
168
查看次数

h:commandbutton,如何重定向到外部站点?(JSF 2)

当我使用命令按钮重定向到页面时,在我的项目中,你只需要给出没有扩展名的页面名称,然后在action属性中使用?faces-redirect = true,我将被重定向.

但是如果我想重定向到外部页面(例如:www.google.com)怎么办?

我试过很多方面:

www.google.com,google.com,http://google.com

但我失败了.

这就是我做的:

<h:form>
            <h:commandButton 
                action="#{mainPageBB.goToLink}" value="#{msgs.clickhere}"/>
        </h:form>
Run Code Online (Sandbox Code Playgroud)

然后是支持bean:

@Named("mainPageBB")
@RequestScoped
public class MainPageBB {

    @EJB
    private ILinkManagerEJB linkManagerEJB;


    public String goToLink() {      
        String link = linkManagerEJB.retrieveLink();
        if(link != null) {
                    System.out.println(link);       
            return link.trim() + "?faces-redirect=true";
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

注意:retrieveLink()返回的值; 始终是www.google.com(100%肯定)

我在控制台中完全没有错误,页面只是刷新.此外,我确信第一个if子句验证为true,所以我认为没有理由跳转到返回null.

更新

我尝试使用外部上下文,但是我得到了404,因为它将当前url附加到链接字符串:

public String goToRandomLink() {        
        String link = linkManagerEJB.retrieveRandomLink();
        if(link != null) {      
            ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
            try {
                externalContext.redirect(link.trim());
            } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

java jsf java-ee java-ee-6 jsf-2

4
推荐指数
1
解决办法
1万
查看次数

使用DHTML事件onmouseover更改JSF命令按钮的图像

我想在鼠标移过它时更改按钮的图像.

我骑着DHTML事件onmouseover,可以为我做,但是怎么样?

我还需要为它创建一个JavaScript吗?

我该怎么做才能让它发挥作用?

这是我目前的代码:

<h:commandButton class="btn" image="/resources/images/mainbtn1.png" onmouseover="/resources/images/mainbtn2.png"/">
Run Code Online (Sandbox Code Playgroud)

html javascript jsf jsf-2

4
推荐指数
1
解决办法
9535
查看次数

为什么我无法在Users表中添加新列?

我正在做一些功课.我的数据库的用户使用了一些其他属性,而不仅仅是当我实现登录和注册机制时ASP 2.0自动为我创建的属性.但是当我尝试保存修改时显示错误.有人可以帮我一把吗?这是错误:

在此输入图像描述 错误说:

'aspnet_Users'表 - 无法修改表.ALTER TABLE只允许添加可以包含空值的列,或者指定了DEFAULT定义,或者添加的列是标识或时间戳列,或者如果以前的条件都不满足,则表必须为空以允许添加这个专栏.列'kjoptekvoten'不能添加到非空表'aspnet_Users',因为它不满足这些条件.

当我实现基于表单的身份验证和注册时,该数据库是自动创建的.现在的问题是用户需要更多属性.我怎样才能赋予它更多属性?最简单的方法是什么?不介意它是否在理论上是正确的(它仅用于作业).

我非常感谢你的帮助.

sql-server

3
推荐指数
1
解决办法
6889
查看次数

不能让我的按钮在不同的浏览器中看起来一样

我不擅长网页设计,我使用CSS创建了一个按钮,但我不知道如何让它在不同的浏览器中看起来一样.

这是我使用的按钮:

<input type="submit" class="randombutton" value="click here!"/>
Run Code Online (Sandbox Code Playgroud)

这是我创建的CSS:

.randombutton {
   border-top: 1px solid #d1d425;
   background: #e6eb4c;
   background: -webkit-gradient(linear, left top, left bottom, from(#92b019), to(#e6eb4c));
   background: -webkit-linear-gradient(top, #92b019, #e6eb4c);
   background: -moz-linear-gradient(top, #92b019, #e6eb4c);
   background: -ms-linear-gradient(top, #92b019, #e6eb4c);
   background: -o-linear-gradient(top, #92b019, #e6eb4c);
   padding: 19px 38px;   
   border-radius: 40px;  
   color: white;
   font-size: 23px;
   font-family: Georgia, Serif;
   text-decoration: none;
   vertical-align: middle;
   display: block;
    margin-left: auto;
    margin-right: auto;
   }
.randombutton:hover {
    border-top-color: #c0df36;
   background: #c0df36;
   color: white;
   }
.randombutton:active {
   border-top-color: #9eb829;
   background: #9eb829;
   }
Run Code Online (Sandbox Code Playgroud)

这是我在3种不同浏览器中得到的结果: …

html css browser

3
推荐指数
1
解决办法
1667
查看次数

在哪里放组成组件?(JSF 2.0)

我正在继续我的JSF 2.0实践.我认为模板是一件好事,它有很多优点.但是今天我对它有了新的疑问.

我为我的网页创建了一个模板.在模板中,我使用标签 对于不同的部分(这些部分稍后将在一个页面中使用组合标记结合一个或多个定义标记来实现).

<ui:insert name="content" />
Run Code Online (Sandbox Code Playgroud)

同样在模板内部,为了避免在模板中添加太多代码,我创建 标签添加一些其他的xhtml块.

<ui:include src="/languageChanger.xhtml"/>
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构的样子:

在此输入图像描述

这一切都像我一样工作,但当我在网址导航到languageChanger.xhtml时,我看到了xhtml的复合块:

在此输入图像描述

我的怀疑是:

- 那些大量独立代码放在正确的位置?或者是错误的,不应该允许用户从URL中看到它?

- 这个地方保存有其他组件,如登录,注册......?

- 为了避免用户直接访问组件,我可以将它放在WEB-INF文件夹中,但是我有一个问题,包含标签找不到路径.我该怎么办?

- 什么是最佳实践,在哪里放置这些独立的代码块?

java jsf java-ee java-ee-6 jsf-2

3
推荐指数
1
解决办法
855
查看次数

如何显示塞尔维亚语、俄语和阿拉伯语文本(JSF 2.0)

在互联网上我找到了一本名为JSF 2.0 Cookbook 的书。

\n\n

我骑了第 7 章(国际化),我发现它非常简单,我自己尝试了所有内容,除了使用俄语、阿拉伯语、塞尔维亚语等语言的字符之外,一切都运行良好......

\n\n

书上是这样说的:

\n\n
\n

使用阿拉伯语、中文、俄语字符(等等)时的一个常见问题听起来像这样:“我可以在 inputText\n 组件中键入这些字符,但是当我提交表单时,插入的文本会显示在Unicode 字符,而不是人类可读字符。如何解决这个问题?”。解决方案非常简单。您所要做的就是在 JSF 页面中写入以下行:

\n
\n\n
<%@page contentType="text/html" pageEncoding="UTF-8"%>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这正是我所做的。我在主 JSF 模板的第一行代码中添加了这一行。但这没有用。\n我错过了什么?我的所有本地化属性文件都配置为使用 UTF-8:

\n\n

在此输入图像描述

\n\n

我还在 h:head 标签中尝试了这一行:

\n\n
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还需要什么才能看到页面中用俄语、阿拉伯语编写的文本...\n当我更改为 ru、ar 或 sr 区域设置时我看到的唯一内容是这样的文本:

\n\n
\n

\xc3\x99\xc3\x98\xc2\xa8\xc3\x98\xc2\xad\xc3\x98\xc2\xab \xc3\x99\xc3\x99 \xc3\x98\xc2\xb5\xc3\x99\xc3 \x98\xc2\xad\xc3\x98\xc2\xa7\xc3\x98\xc2\xaa \xc3\x99\xc3\x99\xc3\x99\xc3\x98\xc2\xa9 \xc3\x99\xc3\x99 \xc3\x98\xc2\xb3\xc3\x99

\n
\n\n

更新\n阅读了一些有关本地化的文章后,我得出的结论是我的应用程序需要进行转换才能呈现特殊字符(我不喜欢属性文件中的 scape 字符的解决方案)。我在此链接中关注了一个示例:http://jdevelopment.nl/internationalization-jsf-utf8-encoded-properties-files/

\n\n

我理解其中的大部分内容,但是当我尝试在我的应用程序中执行此操作时,我发现我仍然在浏览器上看到垃圾。我尝试了各种方法,但没有成功:

\n\n

这就是我组织文件的方式:

\n\n

在此输入图像描述

\n\n

这是我的 faces-config.xml

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n\n<faces-config\n    xmlns="http://java.sun.com/xml/ns/javaee"\n    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"\n    version="2.0">\n    <application>\n        <message-bundle>resources.application</message-bundle>\n …
Run Code Online (Sandbox Code Playgroud)

java jsf internationalization jsf-2 jakarta-ee

3
推荐指数
1
解决办法
7801
查看次数

为什么JPA不会自动生成我的行的ID?

我想使用SEQUENCE策略自动生成id,但我正在打破我的头脑才能使它工作.我根本不知道为什么我不能让它发生.

这就是我做的.首先,我有一个实体:

 @Entity
@SequenceGenerator(name="VlasnikSeq", sequenceName="VLA_SEQ")
public class Vlasnik implements Serializable {

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="VlasnikSeq")
    private Long id;
    //...
Run Code Online (Sandbox Code Playgroud)

在persistence.xml中我有它映射:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="sampleAplication">
    <class>entities.Vlasnik</class>
    <class>entities.Ljubimac</class>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

当我使用eclipses功能为实体生成表时,我得到这个:

在此输入图像描述

如您所见,表已创建,但没有SEQUENCE表.我还在控制台中注意到以下消息,而JPA正在创建表:

[EL警告]:异常[EclipseLink-4002](Eclipse Persistence Services - 2.3.0.v20110604-r9504):org.eclipse.persistence.exceptions.DatabaseException内部异常:java.sql.SQLSyntaxErrorException:SEQUENCE'VLA_SEQ'不存在.

我认为下一步是尝试运行应用程序,看看我是否可以创建一些行.但是,当我试图坚持某些东西时,我得到一个例外,说:

org.apache.derby.client.am.SqlException:SEQUENCE'VLA_SEQ'没有

所以我来,由于某种原因,我需要一个表中的结论,让我去给数据库管理的角度来看,我尝试执行以下查询:

CREATE SEQUENCE VLA_SEQ;
Run Code Online (Sandbox Code Playgroud)

但我收到以下消息:

序列'VLA_SEQ'已经存在.

我完全糊涂了.我不知道该怎么办.我只想在DB中创建新行时自动生成实体的ID.

这是我第一次使用glassfish 3.1,在版本3.0中我不记得,有这个问题,我甚至可以使用@GenneratedValue.我很感激一些帮助.

java orm jpa java-ee java-ee-6

3
推荐指数
1
解决办法
9383
查看次数

自我加入与JPA的关系

我想创建一个使用JPA的表Person,要求Person应该有一个Person类型的字段来代表一个灵魂伴侣.人可以有一个灵魂伴侣(另一个人),但不是强制性的.

我对如何进行映射感到非常困惑.我不确定这个关键字是否可以帮助我.

我想了解什么是最好的方法.这就是我所做的,但我认为不正确.有人可以帮我纠正它,并解释我这种关系应该如何运作?

使用注释的版本

   //DEFINE OneToOne Relationships (SELF JOIN-No mandatory)
    @Entity class Person {
         @Id
         private long identificator;
         private String name;
         @OneToOne(targetEntity=Person.class mappedby="this")
         private Person soulmate;
    }
Run Code Online (Sandbox Code Playgroud)

版本使用部署描述符

<persistence-unit-metadata>
    <entity-mappings>
          <entityclass = “packgagename.Person”>
            <attributes>
                <id name="identificator"/>  
                <column name="name"/>
                <one-to-one name="soulmate" targetEntity="packgagename.Person" mappedby="this"/>                
            </attributes>
     </entityclass>
    </persistence-unit-metadata>
Run Code Online (Sandbox Code Playgroud)

java xml jpa java-ee java-ee-6

3
推荐指数
1
解决办法
4482
查看次数