小编sfr*_*frj的帖子

java中的电子商务(My Baptism of fire)

我正在为一些客户开发JEE6项目,他让我创建了一个非常简单的电子商务商店.我不太熟悉在线汇款,我想让客户能够将资金转账到我的银行账户(直接银行账户),然后再将他们购买的产品(Classic e-shop)邮寄给他们.我对付款网关或结账系统的工作方式了解不多.我想知道是否有人能给我一些关于我开始进入电子商务领域需要知道什么的提示?如果我能清除一些我心中的疑虑,我也会很高兴:

  • 我在JEE6编程,是否需要任何API才能进行银行转账?

  • 我是否需要第三方软件?如果是这样,您能推荐我使用其中一种软件吗?

  • 电子支付的第三方软件如何运作?

  • 在JEE6应用程序中集成第三方支付软件的过程是否复杂?

  • 我使用glassfish V3.0 app服务器.电子支付涉及的是否有任何限制.

我道歉,如果有些疑点听起来有些奇怪或与主题无关,但正如我所说,我对电子商务话题没有经验,我觉得有点迷茫.

我会感激一些帮助.

java payment-gateway java-ee e-commerce java-ee-6

5
推荐指数
1
解决办法
699
查看次数

关于对象Casting的疑问

在此输入图像描述

我从第一年开始帮助一位朋友准备他的Java考试.老师要求他们创建一种可以将音乐家投射到诗人的方法.

没有人知道该怎么做.在思考了一段时间之后,我得出的结论是,不可能这样做(ClassCastException),因为Musician和Poet共享一个接口的事实不足以将它们转移到另一个接口上.

我认为只有在相同的继承链中才有可能.

现在我有三个问题:

  1. 我对吗?
  2. 如果我是对的,教授希望他们做什么?我真的怀疑他会要求这样的事情.
  3. 如果我错了,你能编写可以将音乐家投入诗人的代码吗?

java

5
推荐指数
1
解决办法
268
查看次数

如何更改我的Web项目的起始页?

当我在eclipse中创建一个新项目时,它会自动为我创建一个index.jsp页面,我不希望起始页面是.jsp,我希望它是一个.xhtml这就是我在网上做的.XML:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>myStartPage.xhtml</welcome-file>
</welcome-file-list>
</web-app> 
Run Code Online (Sandbox Code Playgroud)

当我在localhost中运行项目时,上面的代码不允许我将页面myStartPage.xhtml看作第一页.

我应该如何修改它以便浏览器为我显示起始页面.此外,我不想使用任何网址模式.这是强制性的吗?(我尝试删除该标记,但它没有构建).

java eclipse jsf java-ee-6 jsf-2

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

使用 Hibernate 时出现问题 - 未找到 JDBC 驱动程序类:com.mysql.jdbc.Driver

当使用 hibernate 连接到 MySQLDB 并添加数据时,我遇到了一个非常奇怪的问题。

这是我得到的错误:

未找到 JDBC 驱动程序类:com.mysql.jdbc.Driver

这就是我的 hibernate.cfg.xml 的样子

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fpa-webapp</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
    </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么当我导航到应用程序时会看到 500 错误;它说找不到驱动程序。

HTTP 错误 500

访问 /fpa-webapp/ 时出现问题。原因:

Exception constructing service 'ValueEncoderSource': Error invoking
Run Code Online (Sandbox Code Playgroud)

服务构建器方法 org.apache.tapestry5.services.TapestryModule.buildValueEncoderSource(Map, InvalidationEventHub) (位于 TapestryModule.java:2287)(对于服务“ValueEncoderSource”):调用服务贡献方法 org.apache.tapestry5.hibernate.HibernateModule 时出错。贡献ValueEncoderSource(MappedConfiguration,boolean,HibernateSessionSource,Session,TypeCoercer,PropertyAccess,LoggerSource):构造服务'HibernateSessionSource'时出现异常:调用服务构建器方法org.apache.tapestry5.hibernate.HibernateCoreModule.buildHibernateSessionSource(Logger,List,RegistryShutdownHub)时出错(位于HibernateCoreModule) .java:123)(对于服务“HibernateSessionSource”):找不到 JDBC 驱动程序类:com.mysql.jdbc.Driver

我确信驱动程序位于类路径中。

可能是什么?

java mysql hibernate driver

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

如何将货币欧元符号放在最后而不是输出的开头?

我使用JSF的2.0标准转换器标签来格式化一些数字输出作为货币.但我有一点问题,我不知道如何将欧元符号放在输出的末尾.

这就是我做的:

<h:outputText value="#{payment.amount}">
    <f:convertNumber type="currency" currencySymbol="€"/>
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

€15.55

但是所需的输出是:

15,55€

有人可以就如何解决这个小问题给我建议吗?

java jsf currency java-ee

5
推荐指数
1
解决办法
9660
查看次数

如何在使用基于表单的安全性时实现注销

我使用基于JDBC表单的安全领域,我想实现注销,但是当我点击链接时,我看到了这个异常:

java.lang.RuntimeException:java.security.AccessControlException:access denied(java.lang.reflect.ReflectPermission suppressAccessChecks)...由以下引起:java.security.AccessControlException:access denied(java.lang.reflect.ReflectPermission suppressAccessChecks)

这是我为执行loggout而创建的EJB:

@Stateless(name = "ejbs/SessionSupportEJBImpl")
@DeclareRoles({"administrators","users"})
public class SessionSupportEJBImpl implements SessionSupportEJB {

    @PermitAll
    public void releaseUserState() {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
                .getExternalContext().getSession(false);
        if (session != null) {
            session.invalidate();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里我从一个支持bean调用它:

@Named("logoutBB")
@RequestScoped
public class LogoutBean {

    @EJB
    private SessionSupportEJB sessionSupportEJB;

    public String logout() {
        sessionSupportEJB.releaseUserState();
        return "index.xhtml?faces-redirect=true";
    }
}
Run Code Online (Sandbox Code Playgroud)

这里应该触发它的标记:

<h:form>
        <h:commandLink value="LOGOUT" action="#{logoutBB.releaseUserState}"/>
    </h:form>
Run Code Online (Sandbox Code Playgroud)

我的怀疑是:

  • 如何使注销功能起作用?

  • 是否必须始终在我的EJB上使用ejbs安全注释来允许访问?(使用安全领域时)

  • 我应该用servlet代替EJB吗?

  • 这种方法是错误的,我应该尝试其他注销吗?

java security java-ee ejb-3.0 java-ee-6

5
推荐指数
1
解决办法
3377
查看次数

JAX-WS用于调用Web服务的Asynchonous客户端技术

我正在使用JAX-WS对基于SOAP的Web服务进行一些研究,我发现了解客户端部分非常复杂.如果有人可以帮我解释一些主题,我会非常感激.我正在使用SOA书籍和Google,但我真的很困惑,所以我想在这里我可以得到更准确的答案,专注于我需要的东西.

因此,我们可以以同步和异步方式与Web服务进行通信.同步通信缺乏双方必须等待,直到处理结束.

异步客户端允许我们使用2种编程模型以异步方式进行通信:1-回调和2-轮询

  • 疑问1:有人可以用简单的方式向我解释两种模式的差异,优缺点(Callback and Pooling)

在谈论异步通信时,我也明白生产者(Web服务)应该有一种方法,一旦处理完成就找到消费者(客户端).这就是为什么我们要解决.

  • 疑问2:您能否简要解释一下寻址的工作原理?以及如何解决与回调和轮询技术有关的问题?

还有一件事.Dispatch API也让我很困惑.因为他们一直在谈论动态客户.

  • 疑问3:如果Dispatch API一直在谈论动态客户端,那么它与异步通信的关系如何?
  • 疑问4: Dispatch API的两种使用模式(MESSAGE和PAYLOAD),用于什么,以及它们如何与JAXWS的异步通信模型相关?

java soa soap web-services jax-ws

5
推荐指数
1
解决办法
2259
查看次数

我们应该测试控制台输出吗?

我正在使用一些System.out.print本身有一些命令的遗留代码.我的eCobertura插件显示这条线为红色,所以我想对它们进行单元测试.

这里的计算器,我发现了一种单元测试控制台输出这是我的东西是很有趣的.

我是这样做的:

        private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();

        @Before
        public void setUpStreams() {
            System.setOut(new PrintStream(outContent));
        }

        @After
        public void cleanUpStreams() {
            System.setOut(null);
        }

        @Test
        public void out() {
            System.out.print("Some message from the system");
            assertEquals("Some message from the system", outContent.toString());
        }
Run Code Online (Sandbox Code Playgroud)

到目前为止,测试变得很好,但是当我再次运行代码覆盖率插件时,我收到以下消息:

网络"Thread-0"中的异常java.lang.NullPointerException net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:186)at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:267) )at java.slang.Thread.run(Thread.java:662)的net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:31)

我有些疑惑:

  • 尝试进行单元测试是否正确System.out.print()'s
  • eCobertura是否与此类测试兼容?
  • 如果eCobertura与此类测试不兼容,为什么它会显示红色线?
  • 我的测试中有什么问题吗?
  • 我正在使用jUnit 4.11你认为这与它有关吗?
  • 为什么eCobertura给我这个错误?

java legacy tdd junit cobertura

5
推荐指数
1
解决办法
4063
查看次数

如何组织提供REST Web服务的JEE6企业应用程序?

从一个月前开始,我正在努力学习宁静的网络服务.现在我练习了语法并理解了概念,我决定创建一个包含EJB,JPA和REST的非常简单的企业应用程序.我正在努力尝试了解组织这种系统的最佳方法.如果有经验的人可以给我一些关于什么是最佳实践的提示,我会非常感激,以及如何解决我当前的问题.

我来告诉你这个形象吧.抱歉,我无法获得更好的分辨率(使用Ctrl +鼠标向上滚动缩放):

在此输入图像描述

正如您所看到的,这是一个非常简单的企业应用程序,它有2个模块.

此应用程序不使用CDI(我希望在没有CDI帮助的情况下实现我的目标)

当某个客户端(任何可互操作的客户端)发送带有某些参数的@GET时,REST服务应将这些参数传递给EJB模块,该模块将在数据库中搜索并发回适当的数据.最后,服务将在JAXB的帮助下自动编组,并将.XML发送回客户端.

我的问题如下:

  • 我得到一个ClassCastException,因为它在EJB模块中的实体与WebModule中的JAXB类不兼容(即使它们的变量是相同的)
  • 我不知道应该如何组织事情,所以前端可以整理和解组这些实体.
  • 应该是实体类在前端与JAXB映射相结合吗?如果那时,就不会真正需要EJB模块.但问题是,我想要EJB模块,因为我经常在那里进行CRUD操作.
  • 将EJB公开为REST Web服务(制作混合)怎么样?你认为这是个好主意吗?它怎么能帮到我?
  • 再次,如果我在Web模块中创建JAXRS + EJB的混合,我将必须在前端创建我的JPA实体,这是我以前从未做过的事情.你认为这是一个好习惯吗?
  • 你有什么建议?使用REST Web服务的企业应用程序的组织方式通常是什么?

java rest design-patterns jax-rs java-ee

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

使用REST Web服务上传文件是个好主意吗?

我正在使用JAX-RS学习REST,这个疑问刚出现在我脑海中:

由于Web服务旨在为以不同编程语言编写的可互操作的客户端提供服务,并且客户端仅使用URL来访问服务功能; 用于将文件上载到公共数据库的Web服务怎么样?

它会保存吗?如果Web服务无法控制客户端如何执行验证,那么Web服务如何避免被垃圾邮件超载?上传方法看起来与此类似:

@Path("/upload/{something}") 
@Consumes("multipart/form-data")
@POST
public void uploadSomething(...) {
//...
}
Run Code Online (Sandbox Code Playgroud)

所以我怀疑上传是否是REST服务可以安全做的好事?

java rest web-services jax-rs jersey

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