I've placed another html file beside index.html in /war. Lets call it foo.html. In development both http://127.0.0.1:8888/index.html and http://127.0.0.1:8888/foo.html are served. In production, foo.html returns "Error: NOT_FOUND". I checked file case. I tried adding it to as a welcome-file entry in web.xml.
What am I doing wrong that the static file foo.html isn't being deployed/served to/in production?
appengine-web.xml used to have this static-files section, which was only explicitly specifying static content.
<static-files>
<include path="index.html" expiration="30d" />
<include path="bitdual/**.cache.*" expiration="30d" />
<include path="bitdual/js/*.js" expiration="30d" />
<include path="votesmart/**.cache.*" expiration="30d" />
<include path="votesmart/js/*.js" expiration="30d" />
<include path="*.gif" expiration="30d" />
<include path="*.png" expiration="30d" />
<include path="*.html" expiration="7d" />
</static-files>
<resource-files>
<include path="bitdual/*.gwt.rpc" />
<include path="bitdual/*.nocache.*" />
<include path="votesmart/*.gwt.rpc" />
<include path="votesmart/*.nocache.*" />
</resource-files>
I replaced it with the following, which is the newest default config generated. Note that it specifies the world as static first, then gets more specific.
<!-- Configure serving/caching of GWT files -->
<static-files>
<include path="**" />
<!-- The following line requires App Engine 1.3.2 SDK -->
<include path="**.nocache.*" expiration="0s" />
<include path="**.cache.*" expiration="365d" />
<exclude path="**.gwt.rpc" />
</static-files>
Related
im using spring boot java in the server and a web app built on react.
For some reason that i cant' seem to figure, i cant access my react components via url.
Like: https://myapp.appspot.com/profile gives me a 404 error. Is there a reason for this?
Because of app engine i configuree the servlet with code i found online. all works for the regular path ("/") but when i try "/profile" says it doesnt exist even tho it does. In react localhost it works perfectly.
Setup
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;
#SpringBootApplication(exclude = { JacksonAutoConfiguration.class })
#EnableScheduling
public class Backend {
public static void main(String[] args) {
SpringApplication.run(Backend.class, args);
}
public static class ServletInitializer extends SpringBootServletInitializer {
#Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Backend.class);
}
}
}
web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/../index.html</location>
</error-page>
</web-app>
app-engine.xml
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app
xmlns="http://appengine.google.com/ns/1.0">
<threadsafe>true</threadsafe>
<runtime>java8</runtime>
<sessions-enabled>false</sessions-enabled>
<system-properties>
<property name="java.util.logging.config.file"
value="WEB-INF/logging.properties" />
</system-properties>
<static-files>
<include path="/**.html" />
<include path="/**.png" />
<include path="/**.ico" />
<include path="/**.txt" />
<include path="/**.json" />
<include path="/**.js" />
<include path="/**.svg" />
<include path="/**.jpg" />
<include path="/**.map" />
<include path="/**.css" />
</static-files>
<resource-files>
<include path="/**.html" />
<include path="/**.png" />
<include path="/**.ico" />
<include path="/**.txt" />
<include path="/**.json" />
<include path="/**.js" />
<include path="/**.svg" />
<include path="/**.jpg" />
<include path="/**.map" />
<include path="/**.css" />
</resource-files>
<automatic-scaling>
<target-cpu-utilization>0.9</target-cpu-utilization>
<max-instances>30</max-instances>
<min-instances>1</min-instances>
<max-concurrent-requests>15</max-concurrent-requests>
<max-idle-instances>2</max-idle-instances>
</automatic-scaling>
</appengine-web-app>
I want to make the App work only for Android phones and not on tablets so I tried to add the following build hint telephony() to make the App work on Phone for Android under xpermissions:
""
I'm attaching the generated XML with telephony hint added twice one with false(default) and duplicate added with true(added by me).I'm not sure where is the option to replace the default build hint which added with false value. I'm suspecting that was causing the issue for build to fail on the server.
Please find the generated log below:
<receiver android:name="com.codename1.impl.android.LocalNotificationPublisher" ></receiver>
<service android:name="com.codename1.impl.android.BackgroundFetchHandler" android:exported="false" />
<activity android:name="com.codename1.impl.android.CodenameOneBackgroundFetchActivity" android:theme="#android:style/Theme.NoDisplay" />
<activity android:name="com.codename1.location.CodenameOneBackgroundLocationActivity" android:theme="#android:style/Theme.NoDisplay" />
<service android:name="com.codename1.location.BackgroundLocationHandler" android:exported="false" />
<service android:name="com.codename1.location.GeofenceHandler" android:exported="false" />
<service android:name="com.codename1.media.AudioService" android:exported="false" /> </application>
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" android:required="false" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-feature android:name="android.hardware.telephony"/></manifest>
You shouldn't include a manifest entry that's already included. We always mark dependencies as required false. That means the permission is desired but that the app will not fail if the permission is revoked. That's generally good practice as the true flag for required is probably a mistake especially in a cross platform application.
I want to write a multiplatform, native desktop application in C. After some searching, I found IUP to be the perfect fit. Unfortunately, I'm struggling to link the Windows SDK. For now, I just want to statically compile the x64 version for Windows 8.1. When I compile this example in Code::Blocks, I get the following errors:
g++.exe -LC:\MinGW\iup -o "bin-debug\EVE Editor.exe" obj-debug\main.o -lgdi32 -luser32 -lkernel32 -lcomctl32 -lole32 -lfreetype6 -liup -liup_mglplot -liup_plot -liup_scintilla -liupcd -liupcontrols -liupgl -liupglcontrols -liupim -liupimglib -liupmatrixex -liupole -liuptuio -lz
C:\MinGW\iup/libiup.a(iupwin_font.o):iupwin_font.c:(.text+0x1db): undefined reference to `__imp_CreateFontW'
C:\MinGW\iup/libiup.a(iupwin_font.o):iupwin_font.c:(.text+0x224): undefined reference to `__imp_SelectObject'
C:\MinGW\iup/libiup.a(iupwin_font.o):iupwin_font.c:(.text+0x240): undefined reference to `__imp_GetTextMetricsW'
C:\MinGW\iup/libiup.a(iupwin_font.o):iupwin_font.c:(.text+0x684): undefined reference to `__imp_SelectObject'
C:\MinGW\iup/libiup.a(iupwin_font.o):iupwin_font.c:(.text+0x734): undefined reference to `__imp_GetTextExtentPoint32W'
And so on and so forth. Here the IUP documentation says "For Windows, if you statically link the application with IUP you must link also with the libraries ole32.lib and comctl32.lib (provided with the compilers)." So I obtained the Windows SDK from here and recompiled with ole32 and comctl32. I got the same errors. I also looked at the Code::Blocks guide on the same page, but it's for dynamic linking.
I've never linked the Windows SDK before so I'm at a loss. Here is my Code::Blocks project:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="EVE Editor" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin-debug/EVE Editor" prefix_auto="1" extension_auto="1" />
<Option object_output="obj-debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/EVE Editor" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/" />
<Option type="0" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add directory="C:/MinGW/iup/include" />
</Compiler>
<ResourceCompiler>
<Add directory="C:/MinGW/iup/etc" />
</ResourceCompiler>
<Linker>
<Add library="gdi32" />
<Add library="user32" />
<Add library="kernel32" />
<Add library="comctl32" />
<Add library="ole32" />
<Add library="libfreetype6.a" />
<Add library="libiup.a" />
<Add library="libiup_mglplot.a" />
<Add library="libiup_plot.a" />
<Add library="libiup_scintilla.a" />
<Add library="libiupcd.a" />
<Add library="libiupcontrols.a" />
<Add library="libiupgl.a" />
<Add library="libiupglcontrols.a" />
<Add library="libiupim.a" />
<Add library="libiupimglib.a" />
<Add library="libiupmatrixex.a" />
<Add library="libiupole.a" />
<Add library="libiuptuio.a" />
<Add library="libz.a" />
<Add directory="C:/MinGW/iup" />
</Linker>
<Unit filename="main.c">
<Option compilerVar="CC" />
</Unit>
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>
Try changing the order the linking is done. The dependency order must be reversed, I mean least dependent libraries last. For instance:
<Add library="libiupcontrols.a" /> -- optional
<Add library="libiupcd.a" /> -- optional
<Add library="libcd.a" /> -- optional
<Add library="libfreetype6.a" /> -- optional
<Add library="libz.a" /> -- optional
<Add library="libiup.a" />
<Add library="gdi32" />
<Add library="user32" />
<Add library="kernel32" />
<Add library="comctl32" />
<Add library="ole32" />
And you don't need to include all the IUP libraries, just the ones you actually use.
I am receiving the following error when using the following simple WIX configuration. The application being installed is WPF.
Product: Web Miner Installer -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , ,
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Application Title" Language="1033" Version="1.0.0.0" Manufacturer="Avant Prime" UpgradeCode="855a8b6e-c576-41e2-8118-8f3511613478">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="Application Title" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
<UIRef Id="WixUI_InstallDir" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
<DirectoryRef Id="ShortcutFolder">
<Component Id="ShortcutsComponent" Feature="ProductFeature" Guid="{B40F2C3F-CACC-4196-8F8F-C0F6B082404E}">
<CreateFolder Directory="ShortcutFolder" />
<RemoveFolder Id="RemoveShorcutFolder" Directory="ShortcutFolder" On="uninstall" />
<Shortcut Id="UninstallProduct"
Name="Uninstall xxxxxxx"
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]"
Directory="ShortcutFolder"
Description="Uninstalls xxxxxxx"/>
<RegistryValue Id="RegistryShortcut"
Root="HKCU"
Key="SOFTWARE\xxxxxx\settings"
Name="Shortcut"
Value="1"
Type="integer"
KeyPath="yes" />
</Component>
</DirectoryRef>
<PropertyRef Id="NETFRAMEWORK45" />
<Condition Message="This setup requires the .NET Framework 4.5.1 to be installed.">
Installed OR NETFRAMEWORK45
</Condition>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ShortcutFolder" Name="xxxxxx"></Directory>
</Directory>
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="xxxxxxx" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.MyApplication.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
What am I missing or doing wrong?
Here is the requested log information. It is big so I attached a link.
WIX Installer Error Log
You should replace INSTALLLOCATION with the real property (INSTALLFOLDER in your case)
I have a WPF application with 2 log4net appenders in log4net, the first printing to file and the second should print to console.
For some reason I am not being able to show the result on log4net, but I do see it in the file. What is wrong?
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\Temp\\1.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Do you see a console pop up when you start the application.
It could be you have to configure your application as a console project to have a console window...
Otherwise you can check trace info. Normally an appender tries to leave one error message there if he can't log to the desired location.
Output window of visual studio catches trace messages when debugging...
Possible duplicate: Log4net won't log to console (WinForms app)
If you are wanting to see the messages in the output window in visual studio you should use the following instead:
<appender name="TraceAppender" type="log4net.Appender.TraceAppender" >
Do you call once XmlConfigurator.Configure() ?