hjr-SpringBoot: webservice

如果你用springboot时遇到了webservice启动成功了,但是其他的接口却变404了
配置文件可以参考下文

webservice有别于控制器里的api
同一个端口,可以同时发布webservice服务和普通api

可以这么建项目

com.xxx.xxx
–controller
–webservice

其中controller文件夹里都是api接口
webservice文件夹里都是webservice服务和一个配置文件

webservie中
一个接口,一个实现,就是一个服务,然后还有一个配置文件,可以是xml配置文件,可以是。java配置文件,目的都是为了bean的注入。

如果是用springboot 建议用.java配置文件的方式注入bean

和普通api的方式一样,先写接口,再写实现

@WebService(name = "DemoService", // 暴露服务名称
        targetNamespace = "http://xxx.xxx.com/xxx"// 命名空间,一般是接口的包名倒序
)
public interface DataSynchronizeService {  =
    public String test(String testXML);

}
import javax.jws.WebService;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

@WebService(serviceName = "DemoService", // 与接口中指定的name一致
        targetNamespace = "http://xxx.xxx.com/xxx", // 与接口中的命名空间一致,一般是接口的包名倒
        endpointInterface = "包路径.DataSynchronizeService"// 接口地址
)
public class  DataSynchronizeServiceImpl implements DataSynchronizeService{
    @Override
    public String test(String testXML){
  		//对xml的处理
        return  "成功";
    }
}

配置类

@Configuration
public class WebServiceConfig {
	//此处对bean方法的命名 必须用这个,否则其他普通接口会变成404
    @Bean
    public ServletRegistrationBean disServlet(){
        return new ServletRegistrationBean(new CXFServlet() , "/service/*");
    }

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return  new SpringBus();
    }

    @Bean
    public DataSynchronizeServiceImpl DataSynchronizeService(){
        return  new DataSynchronizeServiceImpl();
    }

    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), DataSynchronizeService());//绑定要发布的服务
        endpoint.publish("/api"); //显示要发布的名称
        return endpoint;
    }
}

启动项目,最后在浏览器输入 ip:port/service/api?xsdl 查看

以下是一个简单的 HTML 代码示例,可以用来制作类似于 iPhone 的网页: ```html <!DOCTYPE html> <html> <head> <title>iPhone 网页示例</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> body { background-color: #f2f2f2; font-family: Arial, Helvetica, sans-serif; } .container { margin: 20px auto; max-width: 400px; background-color: #fff; border-radius: 10px; padding: 20px; box-shadow: 0px 0px 10px rgba(0,0,0,0.2); } .header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; } .header img { height: 30px; } .navbar { display: flex; background-color: #eee; border-radius: 5px; overflow: hidden; margin-bottom: 20px; } .navbar a { display: block; padding: 10px; text-align: center; flex: 1; text-decoration: none; color: #555; font-weight: bold; } .navbar a.active { background-color: #007aff; color: #fff; } .content { text-align: center; margin-bottom: 20px; } .content img { max-width: 100%; height: auto; margin-bottom: 10px; } .footer { text-align: center; font-size: 12px; color: #aaa; } </style> </head> <body> <div class="container"> <div class="header"> <img src="https://i.imgur.com/6f8yvRP.png" alt="iPhone" /> <button>搜索</button> </div> <div class="navbar"> <a href="#" class="active">主页</a> <a href="#">新闻</a> <a href="#">社交</a> <a href="#">设置</a> </div> <div class="content"> <img src="https://i.imgur.com/4a74HJr.jpg" alt="iPhone" /> <h2>欢迎来到 iPhone 网页示例</h2> <p>这是一个简单的 HTML 示例,用于展示如何制作类似于 iPhone 的网页。</p> </div> <div class="footer"> <p>©2021 iPhone 网页示例</p> </div> </div> </body> </html> ``` 在浏览器中打开该 HTML 文件,即可看到类似于 iPhone 的网页效果。可以根据需要进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师小侯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值