Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在rest服务java eclipse中未获得json响应_Java_Eclipse_Rest_Maven - Fatal编程技术网

在rest服务java eclipse中未获得json响应

在rest服务java eclipse中未获得json响应,java,eclipse,rest,maven,Java,Eclipse,Rest,Maven,我正在EclipseMars中构建RESTWebServices,通过以下链接创建maven项目 如本文所述,没有将任何依赖项放入pom.xml中(如链接中所述),我得到了xml响应,但没有json响应。因此,当我将依赖项放入pom.xml文件并运行时,我在postman中得到了500个内部服务器错误(此时我不会同时得到xml和json响应) Product.java package com.star.sample.ProductService.Productsample; import j

我正在EclipseMars中构建RESTWebServices,通过以下链接创建maven项目 如本文所述,没有将任何依赖项放入pom.xml中(如链接中所述),我得到了xml响应,但没有json响应。因此,当我将依赖项放入pom.xml文件并运行时,我在postman中得到了500个内部服务器错误(此时我不会同时得到xml和json响应)

Product.java

 package com.star.sample.ProductService.Productsample;

import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Product {
private String id;
private String name;
private String category;

public Product() {

}

public Product(String id, String name, String category) {
    super();
    this.id = id;
    this.name = name;
    this.category = category;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getName() {
    return name;
}}
ProductDao.java

package com.star.sample.ProductService.Productsample;

import java.util.HashMap;
import java.util.Map;

public enum ProductDao {
instance;

private Map<String, Product> products = new HashMap<String, Product>();

private ProductDao() {

    // pumping-in some default data
    Product product = new Product("1001", "iPhone 5S", "Mobile");
    products.put("1", product);

    product = new Product("1002", "Sony MDR-XD200", "Headphone");
    products.put("2", product);

    product = new Product("1003", "Bose Wave II", "Home Audio");
    products.put("3", product);
}

public Map<String, Product> getProducts() {
    return products;
}}
package com.star.sample.ProductService.Productsample;
导入java.util.HashMap;
导入java.util.Map;
公共枚举产品DAO{
实例;
私有映射产品=新HashMap();
私人产品{
//泵入一些默认数据
产品=新产品(“1001”、“iPhone 5S”、“手机”);
产品。投入(“1”,产品);
产品=新产品(“1002”、“索尼MDR-XD200”、“耳机”);
产品。投入(“2”,产品);
产品=新产品(“1003”、“Bose Wave II”、“家用音频”);
产品。放置(“3”,产品);
}
公共地图产品(){
退货产品;
}}
java

 package com.star.sample.ProductService.Productsample;
public class ProductResource {

@Context
UriInfo uriInfo;

@Context
Request request;
String id;

ProductService productService;

public ProductResource(UriInfo uriInfo, Request request, String id) {
    this.uriInfo = uriInfo;
    this.request = request;
    this.id = id;
    productService = new ProductService();
}

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Product getProduct() {
    Product product = productService.getProduct(id);
    return product;
}

@GET
@Produces(MediaType.TEXT_XML)
public Product getProductAsHtml() {
    Product product = productService.getProduct(id);
    return product;
}

@PUT
@Consumes(MediaType.APPLICATION_XML)
public Response putProduct(JAXBElement<Product> productElement) {
    Product product = productElement.getValue();
    Response response;
    if (productService.getProducts().containsKey(product.getId())) {
        response = Response.noContent().build();
    } else {
        response = Response.created(uriInfo.getAbsolutePath()).build();
    }
    productService.createProduct(product);
    return response;
}

@DELETE
public void deleteProduct() {
    productService.deleteProduct(id);
}

 }
package com.star.sample.ProductService.Productsample;

@Path("/products")
public class ProductsResource {

@Context
UriInfo uriInfo;

@Context
Request request;

ProductService productService;

public ProductsResource() {
    productService = new ProductService();
}

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public List<Product> getProducts() {
    return productService.getProductAsList();
}

@GET
@Produces(MediaType.TEXT_XML)
public List<Product> getProductsAsHtml() {
    return productService.getProductAsList();
}

// URI: /rest/products/count
@GET
@Path("count")
@Produces(MediaType.TEXT_PLAIN)
public String getCount() {
    return String.valueOf(productService.getProductsCount());
}

@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void createProduct(@FormParam("id") String id,
        @FormParam("productname") String name,
        @FormParam("productcategory") String category,
        @Context HttpServletResponse servletResponse) throws IOException {
    Product product = new Product(id, name, category);
    productService.createProduct(product);
    servletResponse.sendRedirect("./products/");
}

@Path("{product}")
public ProductResource getProduct(@PathParam("product") String id) {
    return new ProductResource(uriInfo, request, id);
}
package com.star.sample.ProductService.Productsample;
公共类产品资源{
@上下文
UriInfo-UriInfo;
@上下文
请求;
字符串id;
产品服务产品服务;
公共产品资源(UriInfo UriInfo、请求请求、字符串id){
this.uriInfo=uriInfo;
this.request=请求;
this.id=id;
productService=新的productService();
}
@得到
@产生({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
公共产品{
Product Product=productService.getProduct(id);
退货产品;
}
@得到
@生成(MediaType.TEXT\u XML)
公共产品getProductAsHtml(){
Product Product=productService.getProduct(id);
退货产品;
}
@放
@使用(MediaType.APPLICATION_XML)
公共响应产品(JAXBElement productElement){
Product=productElement.getValue();
反应;
if(productService.getProducts().containsKey(product.getId())){
response=response.noContent().build();
}否则{
response=response.created(uriInfo.getAbsolutePath()).build();
}
productService.createProduct(产品);
返回响应;
}
@删除
公共产品(){
productService.deleteProduct(id);
}
}
java

 package com.star.sample.ProductService.Productsample;
import java.util.ArrayList;
import java.util.List;
 import java.util.Map;

 public class ProductService {

ProductDao productDao;

public ProductService() {
    productDao = ProductDao.instance;
}

public void createProduct(Product product) {
    productDao.getProducts().put(product.getId(), product);
}

public Product getProduct(String id) {
    return productDao.getProducts().get(id);
}

public Map<String, Product> getProducts() {
    return productDao.getProducts();
}

public List<Product> getProductAsList() {
    List<Product> productList = new ArrayList<Product>();
    productList.addAll(productDao.getProducts().values());
    return productList;
}

public int getProductsCount() {
    return productDao.getProducts().size();
}

public void deleteProduct(String id) {
    productDao.getProducts().remove(id);
}

}
package com.star.sample.ProductService.Productsample;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Map;
公共类产品服务{
ProductDao ProductDao;
公共产品服务(){
productDao=productDao.instance;
}
公共产品(产品){
productDao.getProducts().put(product.getId(),product);
}
公共产品getProduct(字符串id){
返回productDao.getProducts().get(id);
}
公共地图产品(){
返回productDao.getProducts();
}
公共列表getProductAsList(){
List productList=new ArrayList();
addAll(productDao.getProducts().values());
返回产品列表;
}
public int getProductsCount(){
返回productDao.getProducts().size();
}
公共产品(字符串id){
productDao.getProducts().remove(id);
}
}
ProductsResource.java

 package com.star.sample.ProductService.Productsample;
public class ProductResource {

@Context
UriInfo uriInfo;

@Context
Request request;
String id;

ProductService productService;

public ProductResource(UriInfo uriInfo, Request request, String id) {
    this.uriInfo = uriInfo;
    this.request = request;
    this.id = id;
    productService = new ProductService();
}

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Product getProduct() {
    Product product = productService.getProduct(id);
    return product;
}

@GET
@Produces(MediaType.TEXT_XML)
public Product getProductAsHtml() {
    Product product = productService.getProduct(id);
    return product;
}

@PUT
@Consumes(MediaType.APPLICATION_XML)
public Response putProduct(JAXBElement<Product> productElement) {
    Product product = productElement.getValue();
    Response response;
    if (productService.getProducts().containsKey(product.getId())) {
        response = Response.noContent().build();
    } else {
        response = Response.created(uriInfo.getAbsolutePath()).build();
    }
    productService.createProduct(product);
    return response;
}

@DELETE
public void deleteProduct() {
    productService.deleteProduct(id);
}

 }
package com.star.sample.ProductService.Productsample;

@Path("/products")
public class ProductsResource {

@Context
UriInfo uriInfo;

@Context
Request request;

ProductService productService;

public ProductsResource() {
    productService = new ProductService();
}

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public List<Product> getProducts() {
    return productService.getProductAsList();
}

@GET
@Produces(MediaType.TEXT_XML)
public List<Product> getProductsAsHtml() {
    return productService.getProductAsList();
}

// URI: /rest/products/count
@GET
@Path("count")
@Produces(MediaType.TEXT_PLAIN)
public String getCount() {
    return String.valueOf(productService.getProductsCount());
}

@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void createProduct(@FormParam("id") String id,
        @FormParam("productname") String name,
        @FormParam("productcategory") String category,
        @Context HttpServletResponse servletResponse) throws IOException {
    Product product = new Product(id, name, category);
    productService.createProduct(product);
    servletResponse.sendRedirect("./products/");
}

@Path("{product}")
public ProductResource getProduct(@PathParam("product") String id) {
    return new ProductResource(uriInfo, request, id);
}
package com.star.sample.ProductService.Productsample;
@路径(“/products”)
公共类产品资源{
@上下文
UriInfo-UriInfo;
@上下文
请求;
产品服务产品服务;
公共产品资源(){
productService=新的productService();
}
@得到
@产生({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
公共列表产品(){
返回productService.getProductAsList();
}
@得到
@生成(MediaType.TEXT\u XML)
公共列表getProductsAsHtml(){
返回productService.getProductAsList();
}
//URI:/rest/products/count
@得到
@路径(“计数”)
@生成(MediaType.TEXT\u PLAIN)
公共字符串getCount(){
返回字符串.valueOf(productService.getProductsCount());
}
@职位
@生成(MediaType.TEXT\u HTML)
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
public void createProduct(@FormParam(“id”)字符串id,
@FormParam(“productname”)字符串名称,
@FormParam(“productcategory”)字符串类别,
@上下文HttpServletResponse(servletResponse)引发IOException{
产品=新产品(id、名称、类别);
productService.createProduct(产品);
servletResponse.sendRedirect(“./products/”);
}
@路径(“{product}”)
公共产品资源getProduct(@PathParam(“产品”)字符串id){
返回新的ProductResource(uriInfo、请求、id);
}
}

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0    http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
<groupId>com.star.sample</groupId>
<artifactId>ProductService</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ProductService Jersey Webapp</name>
<build>
    <finalName>ProductService</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <!-- Run the application using "mvn embedded-glassfish:run" -->
        <plugin>
            <groupId>org.glassfish</groupId>
            <artifactId>maven-embedded-glassfish-plugin</artifactId>
            <version>${glassfish.version}</version>
            <configuration>
                <goalPrefix>embedded-glassfish</goalPrefix>
                    <app>C:/Users/star/eclipseworkspace/target/${project.build.finalName}.war</app>
                <autoDelete>true</autoDelete>
                <port>8080</port>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-servlet</artifactId>
                    <version>${project.version}</version>
                </dependency>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>javax.servlet-api</artifactId>
                    <version>3.0.1</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>${jersey.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-web</artifactId>
        <version>${glassfish.version}</version>
        <scope>test</scope>
    </dependency>

 </dependencies>
<properties>
    <jersey.version>1.19</jersey.version>
    <glassfish.version>3.1.1</glassfish.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

4.0.0
com.star.sample
产品服务
战争
0.0.1-快照
ProductService Jersey Webapp
产品服务
org.apache.maven.plugins
maven编译器插件
真的
1.6
1.6
玻璃鱼
maven嵌入式glassfish插件
${glassfish.version}
嵌入式玻璃鱼
C:/Users/star/eclipseworkspace/target/${project.build.finalName}.war
真的
8080
泽西岛
泽西servlet
${project.version}
javax.servlet
javax.servlet-api
3.0.1
泽西岛
泽西servlet
${jersey.version}
泽西岛
泽西json
${jersey.version}
朱尼特
朱尼特
4.8.2
测试
泽西岛
泽西岛客户
${jersey.version}
测试
org.glassfish.extras
玻璃鱼嵌入网
${glassfish.version}
测试
1.19
3.1.1
UTF-8
我是java的新手,mav