EJB 모형의 WEB 서비스
5013 단어 WebbeanwebserviceejbJUnit
1. 먼저 서버 사이드 코드를 작성하고 자바 프로젝트를 새로 만들고 JBoss의client 디렉터리에 있는jar 패키지를 프로젝트에 도입
솔리드 클래스 Order는 다음과 같습니다.
package com.lamp.bean;
import java.io.Serializable;
public class Order implements Serializable{
private static final long serialVersionUID = 9138560163090982706L;
private String orderId;
private String name;
public Order(){}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
인터페이스 클래스 OrderService
package com.lamp.service;
import java.util.List;
import com.lamp.bean.Order;
public interface OrderService {
public Order getOrder(String orderId);
public List<Order> getOrders();
public String getUsername(String name);
}
실현류
package com.lamp.service.impl;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jws.WebService;
import com.lamp.bean.Order;
import com.lamp.service.OrderService;
@WebService(targetNamespace="http://ws.lamp.com",
name="OrderService",
serviceName="OrderServiceBean")
@Stateless
@Remote(OrderService.class)
public class OrderServiceBean implements OrderService {
public Order getOrder(String orderId) {
Order order = new Order();
order.setOrderId(orderId);
order.setName(" ");
return order;
}
public List<Order> getOrders() {
List<Order> orders = new ArrayList<Order>();
Order order = new Order();
order.setOrderId("01");
order.setName(" ");
Order order2 = new Order();
order2.setOrderId("02");
order2.setName(" ");
orders.add(order);
orders.add(order2);
return orders;
}
public String getUsername(String name) {
return name;
}
}
프로젝트로jar를 포장하여 JBoss의 배치 디렉터리에 배치하다
이어서 우리는 클라이언트를 개발하여 자바 프로젝트를 새로 만들고 루트 디렉터리에 lib 폴더를 새로 만들며 JAX-WS의jar 파일을lib 폴더로 복사하는 동시에 프로젝트의 구축 경로에 도입합니다
프로젝트의 루트 디렉터리에build를 새로 만듭니다.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<project name="WSClient" default="wsclientgen" basedir=".">
<property name="src.dir" value="${basedir}/src"></property>
<path id="build.classpath" description=" ">
<fileset dir="${basedir}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="wsclientgen" description=" webservice ">
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="build.classpath"/>
<wsimport wsdl="http://127.0.0.1:8080/WebService/OrderServiceBean?wsdl" sourcedestdir="${src.dir}" package="com.lamp.ws.client" keep="true"
verbose="true" destdir="${basedir}/bin"/>
</target>
</project>
ant를 실행함으로써 우리는 클라이언트 클래스를 얻었다
테스트 클래스를 작성하여 테스트하다
package junit.test;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import com.lamp.ws.client.Order;
import com.lamp.ws.client.OrderService;
import com.lamp.ws.client.OrderServiceBean;
public class WSTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void getUsername(){
OrderServiceBean service = new OrderServiceBean();
OrderService orderService = service.getOrderServicePort();
System.out.println(orderService.getUsername(" "));
}
@Test
public void getOrders(){
OrderServiceBean service = new OrderServiceBean();
OrderService orderService = service.getOrderServicePort();
List<Order> orders = orderService.getOrders();
for(Order order:orders){
System.out.println(order.getName());
}
}
}
테스트를 실행하면 컨트롤러에서 우리가 필요로 하는 결과를 볼 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fortinet FortiWeb Web Application Firewall Policy BypassFrom: Geffrey Velasquez Date: Wed, 2 May 2012 20:33:23 -0500...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.