我有我的模特:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class CustomerTest {
private Long id;
@XmlPath("contact-info/billing-address")
private AddressTest billingAddress;
@XmlPath("contact-info/shipping-address")
private AddressTest shippingAddress;
@XmlPath("FileHeader/SchemaVersion/text()")
private String schemaVersion;
}
Run Code Online (Sandbox Code Playgroud)
我填写这样的对象:
private void marshallCustomerTest() {
try {
JAXBContext jc = JAXBContext.newInstance(CustomerTest.class);
CustomerTest customer = new CustomerTest();
customer.setId(new Long(10));
customer.setSchemaVersion("3.2");
AddressTest billingAddress = new AddressTest();
billingAddress.setStreet("1 Billing Street");
customer.setBillingAddress(billingAddress);
AddressTest shippingAddress = new AddressTest();
shippingAddress.setStreet("2 Shipping Road");
customer.setShippingAddress(shippingAddress);
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(customer, System.out);
} catch (JAXBException jex) {
jex.printStackTrace();
log.error(jex);
}
}
Run Code Online (Sandbox Code Playgroud)
这产生了下一个XML:
<customerTest xmlns:fe="http://www.facturae.es/Facturae/2009/v3.2/Facturae" …Run Code Online (Sandbox Code Playgroud) 您可以在下一个视频中看到我的意思:https://www.dropbox.com/s/zu0skpfo2zkrex3/ios_safari_gestures.mp4 ?dl=0
在此示例中,当我使用浏览器底部的按钮前进时,一切正常,页面显示正确。然而,当我从右向左滑动前进时,浏览器会执行一些不需要的动画,导致某种闪烁。
视频示例的配置如下:
state: 'statistics-consumptions',
config: {
resolve: {
breadCrumbData: ['$stateParams', 'EquipmentMainService', function($stateParams, EquipmentMainService) {
return EquipmentMainService.getBreadcrumbData($stateParams.equipmentId);
}]
},
url: '/statistics-consumptions/{equipmentId}',
templateUrl: 'app/statistics/consumption/consumptions-test.html'
}
Run Code Online (Sandbox Code Playgroud)
如果我消除这个resolve条件,那么闪烁就会消失。为什么会发生这种情况?这是 UI 路由器问题吗?
有趣的是,有些情况下这种情况并没有发生。例如,前面的示例是真实案例的非常简化的版本。接下来是真实案例的配置。
国家:
state: 'statistics-consumptions',
config: {
resolve: {
breadCrumbData: ['$stateParams', 'EquipmentMainService', function($stateParams, EquipmentMainService) {
return EquipmentMainService.getBreadcrumbData($stateParams.equipmentId);
}],
initialData: ['$stateParams', 'StatisticsConsumptionsService', function($stateParams, StatisticsConsumptionsService) {
return StatisticsConsumptionsService.getInitialResources($stateParams.equipmentId);
}]
},
url: '/statistics-consumptions/{equipmentId}',
templateUrl: 'app/statistics/consumption/consumptions.html',
controller: 'StatisticsConsumptionsController',
controllerAs: 'vmStatisticsConsumptionsView',
title: 'statistics.consumptions.tab.title',
ncyBreadcrumb: {
label: 'breadcrumb.equipment.statistics.consumptions',
parent: 'statistics-general-view({equipmentId: bcEquipmentId})'
}
}
Run Code Online (Sandbox Code Playgroud)
控制器。事实上,重要的部分是 …
我正在尝试使用 mod_proxy 和 mod_proxy_wstunnel 模块将流量从 Apache 重定向到 Tomcat。HTTP 流量重定向没有问题,但我无法使用迄今为止尝试过的任何配置成功重定向 websocket 流量。
我正在使用 Apache 2.4.28 和 Tomcat 8.5.13
我必须说,当我在没有 Apache 的情况下使用 Tomcat 时,websockets 工作得非常好:
适用于此配置的 Tomcat 连接器是下一个:
<Connector URIEncoding="UTF-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
compression="on"
compressionMinSize="1024"
connectionTimeout="20000"
noCompressionUserAgents="gozilla, traviata"
port="443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
SSLEnabled="true"
scheme="https"
secure="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="/opt/tomcat/cert/privkey.pem"
certificateFile="/opt/tomcat/cert/cert.pem"
certificateChainFile="/opt/tomcat/cert/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Run Code Online (Sandbox Code Playgroud)
到此为止已经很清楚了。现在我在 Tomcat 前面启动一个 Apache 服务器,我改变的第一件事是像这样的 Tomcat 连接器:
<Connector URIEncoding="UTF-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
compression="on"
compressionMinSize="1024"
connectionTimeout="20000"
noCompressionUserAgents="gozilla, traviata"
port="8080"
protocol="org.apache.coyote.http11.Http11AprProtocol">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>
Run Code Online (Sandbox Code Playgroud)
在 Apache 中,我成功加载了下一个模块(我已经检查过它们确实已加载):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module …Run Code Online (Sandbox Code Playgroud)